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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张亭 中级黑马   /  2012-5-14 20:46  /  1911 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. <P> import java.net.*;</P>
  2. <P>class UdpRec {
  3. public static void main(String[] args) throws Exception{
  4.   DatagramSocket ds = null;
  5.   DatagramPacket dp = null;
  6.    ds = new DatagramSocket(4000);//电脑上QQ用了4000号端口,为啥编译时不报错呢
  7.    while (true) {
  8.     byte[] buf = new byte[1024];
  9.     dp = new DatagramPacket(buf,buf.length);
  10.     ds.receive(dp);</P>
  11. <P>    String ip = dp.getAddress().getHostAddress();</P>
  12. <P>    String data =
  13.      new String(dp.getData(),0,dp.getLength());</P>
  14. <P>    int port = dp.getPort();
  15.    
  16.     System.out.println(ip+"::"+data+"::"+port);
  17.    }
  18. }
  19. }
  20. </P>
复制代码
学习毕老师java第23天网络时,课程中说端口已用的情况下会报错,
我电脑上开着QQ,查看360发现用的是4000,但是我在代码中设置4000却没报错,不过信息也收不到了,这时怎么回事呢
还有,0.0.0.0是什么地址?和127.0.0.1有啥关系没,有知道的请说一下,谢谢
最后一个问题,我换个已用的TCP端口完全没问题,不冲突报错,也能收到信息
是不是说TCP,UDP可以共享同一个端口呢


4 个回复

倒序浏览
肯定编译时出错,好好查一下
还有,0.0.0.0是什么地址?和127.0.0.1,当然有关系了,他们是不同的地址
是不是说TCP,UDP不可以共享同一个端口
回复 使用道具 举报
1. 严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一 律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

2. 网络中0.0.0.0的IP地址表示整个网络,即网络中的所有主机。它的作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。

127.0.0.1是回送地址,指本地机,一般用来测试使用。
回复 使用道具 举报
谢谢楼上的回答 和 测试,
问题还没解决,大家踊跃点哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马