udp socket java_[转载]基于UDP协议的Socket JAVA编程

基于UDP协议的Socket编程

1 UDP协议

2 DatagramPacket类和DatagramSocket类

2.1 DatagramPacket类

2.2 DatagramSocket类

3 基于UDP协议的Socket编程

3.1基于UDP协议的Socket编程的基本步骤

3.2 应用举例、本章小结

1

UDP协议

用户数据报协议(UserDatagramProtocol,UDP)是OSI参考模型中一种面向无连接的传输层协议,提供面向操作的简单的不可靠数据传送服务。在网络中它与TCP协议一样用于处理数据包。UDP协议直接工作于IP协议的顶层。

UDP协议在发送数据时并不刻意追求数据包会完全发送出去,也不能担保它们抵达的顺序与它们发出时一样,因为它是一种不可靠协议。

UDP协议的特性:

(1)UDP是一个面向无连接的协议,传输数据之前客户端和服务器端不建立连接,当它想发送数据时则获取来自应用程序的数据,并尽可能快地把它放到网络上。

(2)由于传输数据时不需建立连接,不需维护连接状态,因此一台服务器可同时向多个客户传输相同的数据。

UDP使用的类

DatagramPacket类包含具体的要传输的信息,这些信息被封装在称为数据报(Datagram)的UDP包中。

DatagramSocket类用于收发UDP数据报。

为发送数据,要将数据封装到DatagramPacket中,使用DatagramSocket发送该包。

为接收数据,要从DatagramSocket中接收一个DatagramPakcet对象,然后解析该包的内容。

UDP与TCP的比较

(1)UDP没有两台主机间唯一连接的概念。使用UDP时,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。对于TCP协议,由于它是一个面向连接的协议,在Socket之间进行数据传输之前必然要建立连接,所以在TCP中多了一个连接建立的时间。

(2)一个DatagramSocket可以从多个独立主机接收数据,也可向多个主机传输相同的数据,此Socket并不专用于一个连接。

(3)TCP

Socket将网络视为流,通过与Socket相关的输入输出流来收发数据。而UDP所处理的总是单个数据报包,封装在一个数据报中的数据都以一个包的形式整体收发,一个包不需与其它包相关。流中的数据是有序的,而数据报包与数据报包之间是无序的。

(4)使用UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。而TCP没有这方面的限制,一旦连接建立起来,双方的socket就可以按统一的格式传输大量的数据。

2

DatagramPacket类和DatagramSocket类

 2.1DatagramPacket类

该类表示一个数据报包。该数据报包用来实现一个无连接包的传送服务。它是进行数据报通信的基本单位。包含了IP地址、端口号和需要传输的数据等。在发送和接收数据报时,要创建DatagramPakcet类对象作为数据的载体。

1.构造函数

(1)public DatagramPacket(byte ibuf[],int

ilength)

功能:创建一个用于接收数据报的DatagramPacket类对象。

参数:

ibuf:存储数据报的缓冲区。在数据报通信中,发送和接收一个数据报,都需提供一个缓冲区&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值