Java的UDP _DatagramSocket.connect()_有什么作用?

我的世界三叶草

最近,我看了有关Java UDP API的一些教程,并看了DatagramSocketandDatagramPacket的javadocs 该类DatagramSocket包含几个connect()和一个disconnect()方法。但是UDP不是没有连接的协议吗?

这些connectdisconnect方法做什么?

曼努蒂

DatagramSocket#connect(InetAddress地址,int端口)的javadocs中

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

...

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

因此,这实际上不是建立与TCP相同的“连接”的方法,而是一种防止与其他地址之间收发数据包的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章