当socket读取超时时,java lib如何处理接收到的数据?

问题描述 投票:-1回答:1

如果套接字读取超时(连接未关闭)并且稍后os接收数据,那么java lib如何处理数据?

例如,连接池中有两个tcp连接/套接字。一个线程读取超时并返回(释放连接到连接池的连接),然后另一个线程使用相同的连接;然后另一个thead可能会收到第一个线程的响应数据。我认为这不对。当两个线程依次使用相同的连接时,java lib(eg.httpclint)如何阻止另一个线程接收先前线程请求的响应数据?

谢谢!

java networking tcp
1个回答
-1
投票

这取决于您在此处收到的数据类型。如果它严格基于哪个线程将处理接收的数据,那么您需要确保使用某种GUID和线程ID组合来识别数据,以便发送方和接收方知道消息已被消耗或丢失。理想情况下,您不应该遇到逻辑依赖于底层线程的情况,除非该逻辑是特定于操作系统层的。

© www.soinside.com 2019 - 2024. All rights reserved.