Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 清空(套接字的)输入流_Java_Sockets_Io - Fatal编程技术网

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。问题是,您永远不知道上一个线程的中断位置,因此您不知道如何正确地快进到已知状态。选择合适的超时时间是网络编程/维护的一门黑色艺术,也是网络顾问(了解他们的工作)获得高额报酬和每一分钱都物有所值的原因。