套接字在空闲时间后挂起:服务器-客户端java程序

套接字在空闲时间后挂起:服务器-客户端java程序,java,sockets,serversocket,server,tcp-ip,Java,Sockets,Serversocket,Server,Tcp Ip,您好,我已经编写了一个服务器程序来接收ISO8583-93版本请求,处理它们并发送响应。我将接收连续的请求。它工作正常,但如果下一个请求到来时套接字处于空闲状态,则服务器无法读取。 请查找下面的代码片段 服务器: 公共类MBServ{ 公共静态无效主字符串[]args引发IOException{ ServerSocket ServerSocket=null; 布尔监听=真; 字符串请求\ u日期=空; 字符串请求时间=null; 试一试{ serverSocket=newserversocke

您好,我已经编写了一个服务器程序来接收ISO8583-93版本请求,处理它们并发送响应。我将接收连续的请求。它工作正常,但如果下一个请求到来时套接字处于空闲状态,则服务器无法读取。 请查找下面的代码片段

服务器:

公共类MBServ{ 公共静态无效主字符串[]args引发IOException{ ServerSocket ServerSocket=null; 布尔监听=真; 字符串请求\ u日期=空; 字符串请求时间=null; 试一试{ serverSocket=newserversocket7777; }捕捉异常{ System.err.PrintLn无法在端口7777上侦听。; 系统出口-1; } 听的时候{ 新建MBServTserverSocket.accept.start; } serverSocket.close; }
} 在我们实现set-sockettimeout之后,它就起作用了。

我猜你的意思是空闲,而不是理想状态。在服务器挂起时,你并行运行了多少线程?当下一个请求到来时,服务器空闲是什么意思?服务器何时不空闲?当启动新请求时,服务器长时间未收到空闲请求时,它将挂起。但当我从本地计算机启动请求时,它工作本地计算机和服务器都在LAN中最合理的情况是在新连接上未触发接受。我见过这种情况发生在防火墙丢弃空闲连接时。你能检查一下你的网络基础设施吗?在我们实现set-sockettimeout之后,它就工作了。