① java中socket函数,每次出错再运行时便告诉我端口被占用
很明显的告诉了你上次调试的程序没有完全结束,端口还在被占用。
确保程序无情退出的时候端口被释放掉。
解决:
打开任务管理器把你认为是上次调试的JAVAW.exe程序干掉就好了
② java socket编程 客户端怎么断开socket
你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了,
又或者通过System.exit(0)关掉当前客户端线程。
当然,你也可以直接通过工具直接把客户端关了。
③ java中短时间new Socket次数过多,并且socket.close() 并不是释放连接,而是设置成了time_wait状态怎么处理
如果短时间内需要建立的连接过多的话,建议使用Socket线程池来做处理。new 太多的话,占的内存会很多,速度变慢。
④ java socket服务器怎么释放
连接的socket关闭,就可以。。。。。如果有文件 IO,也要关闭
⑤ 如何解决大量JAVA客户端Socket关闭时TIME
IME_WAIT这个状态是TCP/IP设计时为考虑网络的可靠性所必须的,主动发起关闭连接的一方在接收到被动关闭连接方发出的FIN后就会进入TIME_WAIT状态,这个状态最长会持续2*MSL(Max Segment Life)时间,其作用是(1)主动方发出的ACK可能会在网络中丢失,如果丢失被动方会重新发出FIN,如果提前关闭了连接就无法接收到重发的FIN。(2)使游荡在网络中的分组在经过2*MSL超时后消失。 TIME_WAIT这个设计是为了网络可靠性的考虑,具体设定时间长短需要根据网络情况决定,超时时间Windows默认设置一般为四分钟,也就是说主动方打开的端口最长在四分钟内不会被释放,导致可用端口减少。 TIME_WAIT的默认等待时间操作系统设置一般都较为保守,如果网络连接中出现大量TIME_WAIT状态,可以考虑修改设置(1)修改操作系统配置减少TIME_WAIT时间,Windows上的设置方法是进入注册表的HKLM->SYSTEM->CurrentControlSet->services->TcpIp->Parameters,添加一个DWORD项“TcpTimedWaitDelay”,时间可设置的短一些(比如60秒或30秒)(2)使用Socket提供的SO_LINGER选项,当SoLinger设置为0时Socket会取消关闭连接等待(不建议)。
⑥ java中socket端口怎么放开
哈哈!
你肯定没有结束那个程序
或者是没有关闭端口。
用close的方法就可以了
⑦ java socket服务器如何捕获并释放无效连接
这个很简单啊。设置超时就可以了,当超过一定时间没有进行数据交换的话,会自动关闭的。或者写个监护线程,查看状态。socket还有一个方法叫isClose也可以进行判断。楼下的是sice5921:是2货来到的,来混分的楼主千万别给分他,像这种拉基进来一次检举一次,哪怕把问题关闭了也不给这种拉基分