黑马程序员技术交流社区
标题:
学习Socket问题
[打印本页]
作者:
﹏゛心被伱牵
时间:
2012-10-26 13:14
标题:
学习Socket问题
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这俩个端口应该怎么理解吗
作者:
一身顺利
时间:
2012-10-26 13:24
DatagramSocket(int port)构造数据报套接字并将其绑定到本地主机上的指定端口;
DatagramPacket(...)构造数据报包,用来将长度为length、偏移量为offset的包发送到指定主机上的指定端口号;
作者:
范贞亮
时间:
2012-10-26 13:25
如果你是发送端的话, 你是不需要绑定什么端口的,就是那个8888 , 而是在发送的时候把你要发送到的目标主机和端口指定就好了。
然后接受端的话, 绑定端口号就可以得到由端口得到的InputStream 流了。就可以读取打印的了
作者:
程杰
时间:
2012-10-26 13:25
从8888是接收信息。而后面的是把buf发送到192.168.1.254端口号被10000的目标上去
作者:
周万谋
时间:
2012-10-26 13:46
本帖最后由 周万谋 于 2012-10-26 13:50 编辑
这是发送端:10000是发送到IP(地址为"192.168.1.254”)的指定端口,8888是可以由自己指定的端口,也可以不指定,不指定的话,系统会随机分配一个
那么接收端就必须监听10000这个端口,
接收端: DatagramSocket ds = new DatagramSocket(
10000
);
这样就把发送、接收端联系起来了
作者:
李靖
时间:
2012-10-26 13:51
这个是网络协议的问题,你传输的数据,是给应用程序来使用的,所以用ip定位主机,用端口号来定义你的程序的出口或入口。这个关键是理解。Socket是用来标示通信服务点的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2