当前位置:编程学习 > JAVA >>

java 多次new socket()并 socket.close();造成Address already in use 解决方法

如题。
在redhat下 客户端在短时间内多次连接到服务端
在多次new socket(),socket.close()之后客户端会出现Address already in use这个异常
求大神给个解决方法。  socket Red Hat 多次连接 --------------------编程问答-------------------- 判断一下:isClosed() 或者是 isClosed() 可不可以?

没有试过楼主说的那种场景,但是close()可能是需要花时间的,TCP协议设计的时候,close的过程,客户端就会等待2MSL(max segment lifetime),然后才是彻底关闭,楼主的这种情况看起来像是关闭之后,客户端的socket又尝试往之前socket绑定的端口上绑定。
试一下修改redhat的网络设定:编辑/etc/sysctl.conf,添加:net.ipv4.tcp_tw_reuse = 1,行/sbin/sysctl -p生效 --------------------编程问答-------------------- 第二次连接的时候,上一次socket未关闭,适当加点延迟
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,