Java的udp_DatagramSocket.connect()_做什么?
我最近看了关于Java的UDP API的一个小教程,并且研究了DatagramSocket和DatagramPacket类的javadoc。类DatagramSocket包含多个connect()和一个disconnect()方法。但是UDP不是没有连接的协议吗?
这两个connect和disconnect方法有什么作用?
将套接字连接到此套接字的远程地址。当套接字连接到远程地址时,只能向该地址发送数据包或从该地址接收数据包。默认情况下不连接数据报套接字。
.
连接套接字时,
receive和send将不会对传入和传出的数据包执行任何安全检查,只会匹配数据包和套接字的地址和端口。在发送操作中,如果设置了数据包的地址,并且数据包的地址和套接字的地址不匹配,则将抛出IllegalArgumentException。连接到多播地址的套接字只能用于发送数据包。
因此,它实际上不是一种与TCP建立"连接"相同的方式,而是一种阻止向/从其他地址发送或接收数据包的方式。
相关文章