UDP通信
2014-09-04 00:42
78 查看
UDP通信是一个不可靠协议,只管发送不管是否收到,但效率高。
TCP是可靠通信协议,采用一问一答的可靠模式,但效率低。
DatagramPacket:UDP数据报,是基于IP建立的,每台主机有65536个端口号可使用,
数据报的字节限制为65536 - 8(头信息)。
DatagramSocket:用于监听固定端口的报文
客户端向服务端发送数据的步骤:
(1)创建用于发送数据的实例
DatagramSocket socket = new DatagramSocket();
(2)准备数据,将字符串转化为字节数组。
(3)创建数据包(打包:准备包裹,填写想、地址,装入数据),将数据存入包中
InetAdress getByName(String ip):获取服务端ip
DatadramPacket(byte[] buf,int len,InetAddress address,int port)
从buf数组取len长度数据来创建数据包对象,将数据发送到address地址,port端口
DatadramPacket(byte[] buf,int offset,int len,InetAddress address,int port)
将从buf数组第offset位置开始的len个数据发送到address地址,port端口
(4)将数据包通过Socket发送到服务端
send(DatagramPacket dp):发送报文到dp
服务端接收包的步骤:
(1)创建接收包的实例socket,并固定监听port端口报文
DatagramSocket(int port):固定监听port端口
(2)创建接收包,大小应当合适
DatagramPacket(byte[] buf,int len):将len长度的数据装入buf数组中
DatagramPacket(byte[] buf,int offset,int len):将数据包中从offset开始的len长度的数据装入buf数组中
(3)通过socket接收到数据包
receive(DatadramPacket d):接收数据报到d中。该方法是一个阻塞方法,会一直等到有数据被读到才畅通
(4)使用DatagramPacket的方法拆包取数据
byte[] getData():取数据
int getLength():有效数据的长度
InetAddress getAddress():获取客户端地址
int getPort():获取客户端端口号
TCP是可靠通信协议,采用一问一答的可靠模式,但效率低。
DatagramPacket:UDP数据报,是基于IP建立的,每台主机有65536个端口号可使用,
数据报的字节限制为65536 - 8(头信息)。
DatagramSocket:用于监听固定端口的报文
客户端向服务端发送数据的步骤:
(1)创建用于发送数据的实例
DatagramSocket socket = new DatagramSocket();
(2)准备数据,将字符串转化为字节数组。
(3)创建数据包(打包:准备包裹,填写想、地址,装入数据),将数据存入包中
InetAdress getByName(String ip):获取服务端ip
DatadramPacket(byte[] buf,int len,InetAddress address,int port)
从buf数组取len长度数据来创建数据包对象,将数据发送到address地址,port端口
DatadramPacket(byte[] buf,int offset,int len,InetAddress address,int port)
将从buf数组第offset位置开始的len个数据发送到address地址,port端口
(4)将数据包通过Socket发送到服务端
send(DatagramPacket dp):发送报文到dp
服务端接收包的步骤:
(1)创建接收包的实例socket,并固定监听port端口报文
DatagramSocket(int port):固定监听port端口
(2)创建接收包,大小应当合适
DatagramPacket(byte[] buf,int len):将len长度的数据装入buf数组中
DatagramPacket(byte[] buf,int offset,int len):将数据包中从offset开始的len长度的数据装入buf数组中
(3)通过socket接收到数据包
receive(DatadramPacket d):接收数据报到d中。该方法是一个阻塞方法,会一直等到有数据被读到才畅通
(4)使用DatagramPacket的方法拆包取数据
byte[] getData():取数据
int getLength():有效数据的长度
InetAddress getAddress():获取客户端地址
int getPort():获取客户端端口号
相关文章推荐
- winsock实现UDP通信DEMO
- 网络基础学习笔记二------UDP通信之客户端
- Java Socket通信及TCP/UDP实现
- 一个简单的Java UDP协议通信的例子
- Java UDP通信示例
- VS2010编写UDP网络通信程序的问题(借用孙鑫老师《深入VC++》书中程序)
- linux 网络编程:客户端与服务器通过TCP协议相互通信 + UDP
- 稳扎稳打Silverlight(54) - 4.0通信之对UDP协议的支持: 通过 UdpAnySourceMulticastClient 实现 ASM(Any Source Multicast),即“任意源多播”
- 稳扎稳打Silverlight(54) - 4.0通信之对UDP协议的支持: 通过 UdpAnySourceMulticastClient 实现 ASM(Any Source Multicast),即“任意源多播”
- java通信之Scoket-UDP
- 稳扎稳打Silverlight(54) - 4.0通信之对UDP协议的支持: 通过 UdpAnySourceMulticastClient 实现 ASM(Any Source Multicast),即“任意源多播”
- java 基础知识之网络通信(TCP通信、UDP通信、多播以及NIO)总结
- 利用UDP matlab与VS实时通信传输数据
- 稳扎稳打Silverlight(55) - 4.0通信之对UDP协议的支持: 通过 UdpSingleSourceMulticastClient 实现 SSM(Source Specific Multicast),即“源特定多播”
- 稳扎稳打Silverlight(55) - 4.0通信之对UDP协议的支持: 通过 UdpSingleSourceMulticastClient 实现 SSM(Source Specific Multicast),即“源特定多播”
- 稳扎稳打Silverlight(55) - 4.0通信之对UDP协议的支持: 通过 UdpSingleSourceMulticastClient 实现 SSM(Source Specific Multicast),即“源特定多播”
- 基于LINUX系统的SOCKET通信,使用UDP协议.
- vs 2005 mobile 6.0 模拟器UDP通信配置
- TCP+UDP通信实验
- UDP浅析!!!(客户-服务通信源码)