黑马程序员技术交流社区

标题: DatagramSocket中connect方法的疑问 [打印本页]

作者: 孙胜    时间: 2013-5-6 19:58
标题: DatagramSocket中connect方法的疑问
本帖最后由 孙胜 于 2013-5-13 08:27 编辑

当我们要通过DatagramSocket发送一个数据包时,通常已经在DatagramPacket中封装了要发送的数据和目标地址以及端口.
那么这个connect方法是起什么作用的?
当connect和DatagramPacket中封装的SocketAddress不一致时,数据发到哪里去了?


作者: eycrckag    时间: 2013-5-12 09:01
DatagramPacket中封装的SocketAddress不一致时,运行就会失败!没有到哪里去了。呵呵
作者: 刘胜寒    时间: 2013-5-12 09:44
connect的作用是指定包只能从该地址发送或者接受数据包。
如果不一致。UDP数据包会发送到DatagramSocket指定的目标主机。

作者: 刘胜寒    时间: 2013-5-12 09:44
楼主可以结贴了。。。
作者: 孙胜    时间: 2013-5-12 11:37
刘胜寒 发表于 2013-5-12 09:44
楼主可以结贴了。。。

发送端是这样的,那么接收端呢,是不是指定SocketAddress后就不能接收其他的数据了?
作者: 刘胜寒    时间: 2013-5-12 11:53
孙胜 发表于 2013-5-12 11:37
发送端是这样的,那么接收端呢,是不是指定SocketAddress后就不能接收其他的数据了? ...

接收端估计能收到。如果IP存在并且收到了。也会把这个包给丢了。因为在拆分到UDP数据报这块的时候发现IP地址不是自己的。就给丢了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2