黑马程序员技术交流社区
标题:
javaSE网络编程中的问题
[打印本页]
作者:
张亭
时间:
2012-5-14 20:46
标题:
javaSE网络编程中的问题
<P> import java.net.*;</P>
<P>class UdpRec {
public static void main(String[] args) throws Exception{
DatagramSocket ds = null;
DatagramPacket dp = null;
ds = new DatagramSocket(4000);//电脑上QQ用了4000号端口,为啥编译时不报错呢
while (true) {
byte[] buf = new byte[1024];
dp = new DatagramPacket(buf,buf.length);
ds.receive(dp);</P>
<P> String ip = dp.getAddress().getHostAddress();</P>
<P> String data =
new String(dp.getData(),0,dp.getLength());</P>
<P> int port = dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
}
}
}
</P>
复制代码
学习毕老师java第23天网络时,课程中说端口已用的情况下会报错,
我电脑上开着QQ,查看360发现用的是4000,但是我在代码中设置4000却没报错,不过信息也收不到了,这时怎么回事呢
还有,0.0.0.0是什么地址?和127.0.0.1有啥关系没,有知道的请说一下,谢谢
最后一个问题,我换个已用的TCP端口完全没问题,不冲突报错,也能收到信息
是不是说TCP,UDP可以共享同一个端口呢
1a.JPG
(21.88 KB, 下载次数: 8)
下载附件
2012-5-14 20:37 上传
作者:
崔陈喜
时间:
2012-5-14 21:56
肯定编译时出错,好好查一下
还有,0.0.0.0是什么地址?和127.0.0.1,当然有关系了,他们是不同的地址
是不是说TCP,UDP不可以共享同一个端口
作者:
朱晓辉
时间:
2012-5-14 22:08
1. 严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一 律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。
2. 网络中0.0.0.0的IP地址表示整个网络,即网络中的所有主机。它的作用是帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去。
127.0.0.1是回送地址,指本地机,一般用来测试使用。
作者:
张亭
时间:
2012-5-15 09:24
谢谢楼上的回答 和 测试,
问题还没解决,大家踊跃点哦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2