javase重新开始系列之网络编程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jasonsama/article/details/52194475

关于TCP/IP戳下方链接

http://blog.csdn.net/goodboy1881/article/category/204448


URL类:用于解析URL,返回该地址的信息如协议名,端口号,ip地址等

使用BufferedReader可以从URL获取html文档内容。

URL url = new URL("http://www.baidu.com");


URLConnection类:URLConnection表示了应用程序和URL资源之间的通信连接

try {
URL ibm = new URL("http://www.sise.com.cn");
URLConnection gc = ibm.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(gc.getInputStream()));
String str;
while ((str = in.readLine()) != null)
	    System.out.println(str);
in.close();
}catch (Exception e) {
	           e.printStackTrace();
      }
}
结果输出html文档代码


InetAddress类:InetAddress是Java对IP地址的封装,在java中很多类使用到它。

InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。InetAddress类提供了将主机名解析为IP地址(或反之)的方法。

获取本机ip地址

try{
	InetAddress ia=InetAddress.getLocalHost();
	System.out.println(ia.getHostAddress());
	System.out.println(ia.toString());
}catch(UnknownHostException uhe){
<span style="white-space:pre">	</span>....
}


Socket(套接字)类:在C/S结构软件的客户端和服务器之间定义一套通信协议,并创建一个socket类,并利用这个类建立一条可靠的连接。

客户端发送请求到服务器,服务器接收请求并作出响应,称为“请求—应答”模式。

socket以两种模式操作:

面向连接的模式:使用TCP/IP协议

无连接模式:使用用户数据包协议(UDP)


TCP编程:

简单聊天程序:

//服务器端代码主要片断
int i = 0;// 计数
try {
	ServerSocket ss = new ServerSocket(2345);// 创建ServerSocket对象
	System.out.println("服务器启动......");
	while (true) {
		Socket socket = ss.accept();// 等待客户端连接,并生成Socket对象
		i++;// 计数
		System.out.println("接受连接请求" + i);
		//得到Socket的输出流,并包装
		PrintStream out = new PrintStream(socket.getOutputStream());
		out.println("你好!“+i);
		out.close();
		socket.close();
		if (i>=3)//连接数大于等于3时,服务器程序退出
			break;
	}
} catch (IOException e) {
	System.out.println(e);
}

//客户端代码主要片断
try {
	Socket sock = new Socket("127.0.0.1", 2345);// 创建Socket对象,地址与端口要对应服务器的值
	// 对Socket的输入流进行包装
	BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
	String s = in.readLine();
	System.out.println(s);
	in.close();
} catch (IOException e) {
	System.out.println("error!");
}
(为了不相互影响,还应使用单独线程对应一个套接字)


UDP编程:

UDP协议是一种无连接的协议,它以数据报作为数据传输的载体。数据报的传输次序、到达时间以及内容本身等都不能得到保证数据报的大小最多为64KB
UDP协议无需在发送方和接收方建立连接,数据报在网上可以以任何可能的路径传往目的地。其特点;快速传输

具体实现略。


TCPUDP的比较
TCP是面向连接的协议.UDP是一个不可靠协议,可能会丢失数据包.发送方所发送的数据报并不一定以相同的次序到达接收方.
使用UDP传输数据有大小限制,每个传输数据报限定在64KB之内.TCP没限定.
UDP资源消耗小、处理速度快

TCP:URL,URLConnection,Socket,ServerSocket

UDP:DatagramPacket,DatagramSocket,MulticastSocket.

使用范围:

     TCP:FTP

     UDP:ICQ(QQ),音频、视频传送等



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页