Java UDP编程:DatagramSocket与实用应用解析
1. DatagramSocket类基础
DatagramSocket类常用于多播套接字。同时,数据报通道也能创建未连接的数据报套接字,并且可以配置为重用端口。
1.1 SO_BROADCAST选项
SO_BROADCAST选项控制套接字是否允许向广播地址(如192.168.254.255)发送数据包以及从这些地址接收数据包。UDP广播常用于一些协议,如JXTA对等发现协议和服务定位协议,这些协议需要与本地网络上地址未知的服务器进行通信。该选项通过以下两个方法控制:
public void setBroadcast(boolean on) throws SocketException // Java 1.4
public boolean getBroadcast( ) throws SocketException // Java 1.4
此选项默认开启,但可以通过 socket.setBroadcast(false); 禁用。需要注意的是,在某些实现中,绑定到特定地址的套接字不会接收广播数据包,因此要使用 DatagramPacket(int port) 构造函数来监听广播,并将SO_BROADCAST选项设置为true。
1.2 流量类
UDP的流量类与TCP基本相同,因为数据包实际上是根据IP进行路由和优先级排序的,而TCP和UDP都基于IP。 Datagra
超级会员免费看
订阅专栏 解锁全文
699

被折叠的 条评论
为什么被折叠?



