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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ﹏゛心被伱牵 中级黑马   /  2012-10-26 13:14  /  1298 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


                DatagramSocket ds = new DatagramSocket(8888);
                byte[] buf = "nihao!!!!!!!!! ".getBytes();
                DatagramPacket dp =
                        new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);

大家知道8888和10000这俩个端口应该怎么理解吗

5 个回复

倒序浏览
DatagramSocket(int port)构造数据报套接字并将其绑定到本地主机上的指定端口;
DatagramPacket(...)构造数据报包,用来将长度为length、偏移量为offset的包发送到指定主机上的指定端口号;
回复 使用道具 举报
如果你是发送端的话, 你是不需要绑定什么端口的,就是那个8888  , 而是在发送的时候把你要发送到的目标主机和端口指定就好了。
然后接受端的话, 绑定端口号就可以得到由端口得到的InputStream 流了。就可以读取打印的了
回复 使用道具 举报
从8888是接收信息。而后面的是把buf发送到192.168.1.254端口号被10000的目标上去
回复 使用道具 举报
本帖最后由 周万谋 于 2012-10-26 13:50 编辑

这是发送端:10000是发送到IP(地址为"192.168.1.254”)的指定端口,8888是可以由自己指定的端口,也可以不指定,不指定的话,系统会随机分配一个
那么接收端就必须监听10000这个端口,
              接收端: DatagramSocket ds  = new DatagramSocket(10000);
这样就把发送、接收端联系起来了
回复 使用道具 举报
这个是网络协议的问题,你传输的数据,是给应用程序来使用的,所以用ip定位主机,用端口号来定义你的程序的出口或入口。这个关键是理解。Socket是用来标示通信服务点的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马