基于java的socket端口复用问题(TCP)

kd_pp1987 2015-03-12 04:40:39
作为小白的我,想用本机的同一个端口与服务起的不同端口建立两个socket连接。在调用第二个cs2.bind()方法时,提示“Address already in use”地址已被使用,求大神指导。
注:在调用bind()方法之前两个socket都已经设置SO_ReuseAddress 的值为true。
具体代码如下:
Socket cs1, cs2;
InetSocketAddress csadd = null;
InetSocketAddress csadds1 = null;
InetSocketAddress csadds2 = null;
csadd = new InetSocketAddress (InetAddress.getByName("192.168.1.111"),8000); // 本机(客户机)的ip及端口
csadds1 = new InetSocketAddress (InetAddress.getByName("192.168.1.101"),8000); //连接服务器的ip和端口
csadds2 = new InetSocketAddress (InetAddress.getByName("192.168.1.101"),8001); //连接服务器的ip和另个端口
cs1 = new Sokcet(); //实例化Socket对象cs1
cs1.setReuseAddress(true); //设置端口复用为 true
cs1.bind(csadd); //绑定本机的ip和端口,
cs1.connet(csadds1); //连接服务器。程序运行至这正常,但运行到cs2.bind()就提示出错

cs2 = new Sokcet();
cs2.setReuseAddress(true);
cs2.bind(csadd); //运行到这里就提示出错
cs2.connet(csadds1);
...全文
909 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
旋转的木头123 2017-07-05
  • 打赏
  • 举报
回复
端口是复用了,但是ip不能一样
kukudetian 2016-03-21
  • 打赏
  • 举报
回复
你可以参考http://blog.csdn.net/xsckernel/article/details/8159292
kd_pp1987 2015-03-13
  • 打赏
  • 举报
回复
难道每人关注这块么?
kd_pp1987 2015-03-12
  • 打赏
  • 举报
回复
自己顶下,跪求路过的大神指导下

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧