A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何丛 中级黑马   /  2013-9-20 23:49  /  1375 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何丛 于 2013-9-21 02:28 编辑
  1. DatagramSocket datagramSocket = new DatagramSocket(8888) ;
  2. byte buf[] = string.getBytes() ;
  3. DatagramPacket datagramPacket = new DatagramPacket( buf , buf.length ,InetAddress.getLocalHost() , 10000);
复制代码
为什么DatagramPacket中已经绑定了IP地址和端口,而DatagramSocket还要绑定一个端口,
而且在接收端获得的端口不是DatagramPacket绑定的端口而是DatagramSocket绑定的端口

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

2 个回复

倒序浏览
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=MjY0Mzl8OGQ0M2ZmOWY2ZWE0ZGU1OTY2YzcxY2Y4ZGNmYjdiOGJ8MTczNTI0NzU0NQ%3D%3D&request=yes&_f=.jpg

QQ图片20130921002609.jpg (42.94 KB, 下载次数: 4)

QQ图片20130921002609.jpg

评分

参与人数 1技术分 +2 收起 理由
黄兴旺 + 2 赞一个!

查看全部评分

回复 使用道具 举报
谢谢你的回答,我大概懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马