网络编程

网络模型 

TCP/IP参考模型          OSI参考模型
应用层                       应用层 表示层 会话层 HTTP
传输层                       传输层 TCP UDP
网际层                       网络层 IP
主机至网络层               数据链路层 物理层

网络通信要素
IP地址              本机回环地址 127.0.0.1 主机名: localhost
端口号               0~65535           0~1024系统保留
传输协议             TCP UDP

UDP
将数据及源和目的封装成数据包中,不需要建立连接
每个数据包的大小在限制在64k内
因无连接,是不可靠协议
不需要建立连接,速度快

TCP
建立连接,形成传输数据的通道
在连接中进行大数据量传输
通过三次握手完成连接,是可靠协议
必须建立连接,效率会稍低


数据在两个Socket间通过IO进行传输

UDP传输 的Socket
DatagramSocket
receive send
DatagramPacket

import java.net.*;

/*
通过udp传输方式,将一段文字数据发送出去。
思路:
1, 建立 udpsocket 服务
2. 提供数据,并将数据封装到数据包中
3, 通过socket 发送功能,将数据包发出去
4.关闭资源
*/
class  UdpSend
{
	void wang() throws Exception 
	{
		DatagramSocket ds = new DatagramSocket();
		
		byte[] buf = "udp 123".getBytes();

		DatagramPacket dp =  new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.10"),12345);
		
		ds.send(dp);

		ds.close();
	}
}


//定义UdpSocket服务
//定义一个数据包
//通过receive方法将收到的数据存入已定义好的数据中
//通过数据包对象的特有功能,将这些不同的数据取出。
//关闭资源
class UdpRece
{
	void jie() throws Exception 
	{
	 	DatagramSocket ds = new DatagramSocket(12345);

		byte[] buf = new byte[1024];

		DatagramPacket dp = new DatagramPacket(buf,buf.length);

		ds.receive(dp); //阻塞方法, 没有数据就等。

		dp.getDate();

		ds.close();
	}
}

 

 

posted @ 2012-03-28 15:53  微明  阅读(156)  评论(0)    收藏  举报