Java的udp_DatagramSocket.connect()_做什么?

2022-02-24 00:00:00 sockets connection udp protocols java

我最近看了关于Java的UDP API的一个小教程,并且研究了DatagramSocketDatagramPacket类的javadoc。类DatagramSocket包含多个connect()和一个disconnect()方法。但是UDP不是没有连接的协议吗?

这两个connectdisconnect方法有什么作用?

从"href="http://docs.oracle.com/javase/7/docs/api/java/net/DatagramSocket.html#connect(java.net.InetAddress,%20int)"的rel="noreferrer">DatagramSocket#connect(InetAddress地址的推荐答案, int port):

将套接字连接到此套接字的远程地址。当套接字连接到远程地址时,只能向该地址发送数据包或从该地址接收数据包。默认情况下不连接数据报套接字。

.

连接套接字时,receivesend将不会对传入和传出的数据包执行任何安全检查,只会匹配数据包和套接字的地址和端口。在发送操作中,如果设置了数据包的地址,并且数据包的地址和套接字的地址不匹配,则将抛出IllegalArgumentException。连接到多播地址的套接字只能用于发送数据包。

因此,它实际上不是一种与TCP建立"连接"相同的方式,而是一种阻止向/从其他地址发送或接收数据包的方式。

相关文章