Java 清空(套接字的)输入流
一些事实:Java 清空(套接字的)输入流,java,sockets,io,Java,Sockets,Io,一些事实: -我的应用程序是客户端。 -我有一个Socket池。 -多个线程使用此池。 -每个线程都可以超时。 -超时时,Socket将返回到池中,即使没有从服务器读取回复。 问题: 超时时,使用此套接字的下一个线程可能必须读取一些旧消息(该消息是在套接字返回后由服务器发送的)。 问题是: 使用前“清除”套接字的InputStream的最佳方法是什么?如果I/O协议未正常完成,最好的解决方案是关闭有问题的I/O通道,将其从池中删除,打开新连接并将其添加到池中 为此,客户端和服务器都应该为这种情况
-我的应用程序是客户端。
-我有一个
Socket
池。-多个
线程使用此池。
-每个线程都可以超时。
-超时时,Socket
将返回到池中,即使没有从服务器读取回复。
问题:
超时时,使用此套接字的下一个线程可能必须读取一些旧消息(该消息是在套接字返回后由服务器发送的)。
问题是:
使用前“清除”套接字的InputStream
的最佳方法是什么?
如果I/O协议未正常完成,最好的解决方案是关闭有问题的I/O通道,将其从池中删除,打开新连接并将其添加到池中
为此,客户端和服务器都应该为这种情况做好准备,提供一种确认另一端活动性的方法。如果您的I/O协议没有正常完成,最好的解决方案是关闭有问题的I/O通道,将其从池中删除,打开一个新连接并将其添加到池中
为此,客户机和服务器都应该为这种情况做好准备,提供一种方法来确认另一端的活动性。即使服务器只慢了几秒钟(而且连接实际上很好,处理速度很慢)?@Andrew。问题是,您永远不知道上一个线程的中断位置,因此您不知道如何正确地快进到已知状态。选择合适的超时时间是网络编程/维护的一门黑色艺术,也是网络顾问(了解他们的工作)获得高额报酬并物有所值的原因。即使服务器只慢了几秒钟(而且连接实际上很好,处理过程也很慢)@Andrew。问题是,您永远不知道上一个线程的中断位置,因此您不知道如何正确地快进到已知状态。选择合适的超时时间是网络编程/维护的一门黑色艺术,也是网络顾问(了解他们的工作)获得高额报酬和每一分钱都物有所值的原因。