黑马程序员技术交流社区
标题:
有关DatagramSocket的小问题,求解释
[打印本页]
作者:
何丛
时间:
2013-9-20 23:49
标题:
有关DatagramSocket的小问题,求解释
本帖最后由 何丛 于 2013-9-21 02:28 编辑
DatagramSocket datagramSocket = new DatagramSocket(8888) ;
byte buf[] = string.getBytes() ;
DatagramPacket datagramPacket = new DatagramPacket( buf , buf.length ,InetAddress.getLocalHost() , 10000);
复制代码
为什么DatagramPacket中已经绑定了IP地址和端口,而DatagramSocket还要绑定一个端口,
而且在接收端获得的端口不是DatagramPacket绑定的端口而是DatagramSocket绑定的端口
作者:
周文斌
时间:
2013-9-21 00:25
DatagramPacket datagramPacket = new DatagramPacket( buf , buf.length ,InetAddress.getLocalHost() , 10000);
中的端口号指得是数据发送目标的端口号
DatagramSocket datagramSocket = new DatagramSocket(8888) ;
指得是发送端出去的端口号,可以不填,那样会自动分配一个端口。
------------------------------------------------------------
socket有个形象的举例是港口,如果你的数据想从一个地方到另一个地方,那么必须从一个港口,到另外一个港口。既然目的地的港口需要具体的码头号(端口号)用做驳船,那么在启航的港口当然也需要某个码头号来对应某搜船啦!
至于为什么收到的对象里,端口号是出发点的端口号,那是肯定啦,人家当然不需要知道自己的端口号啦!自己的对象里有自己的端口号呀,既然是发送者来的对象,那么我获取对象中的端口号的目的当然是想往回发送啦,那么当然需要的是对方的端口号啦~~~
不知道这样解释你明不明白。。http://bbs.itheima.com/forum.php?mod=attachment&aid=MjY0Mzl8MTc4YWNjZGM3NjQ3Y2I0MjE4NmYyNWY5ZGIwNTI5ZDB8MTczOTc3NDM1OQ%3D%3D&request=yes&_f=.jpg
QQ图片20130921002609.jpg
(42.94 KB, 下载次数: 6)
下载附件
2013-9-21 00:24 上传
作者:
何丛
时间:
2013-9-21 00:49
谢谢你的回答,我大概懂了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2