我有一个关于一个一般性的问题异步插座-I/O在Java中到处找不着答案:java异步套接字 - 哪个回复属于哪个请求?
说我通过使用TCP套接字发送3个请求到特定服务器异步,这意味着,而无需在发送下一个请求之前等待请求的响应。据我所知,我可以通过在一个单线程中使用例如Java NIO和非阻塞SocketChannel来实现。现在,假设我得到2个回应,并且服务器以接收它们的顺序处理请求。我有什么方法可以确定我的3个请求中的哪些回复属于哪个?毕竟,我无法保证我的请求以我发送给他们的顺序到达服务器。对吧?是否有任何库(可能不是Java.NIO)可以帮助我分配请求的响应?
期待您的回复。 很多谢谢!
嗨艾瑞克, 感谢您的答复。但是,当我仅使用一个套接字进行与服务器的整个通信时,是否也可以将请求分配给请求? (即所有请求都通过同一个套接字发送) – user1723175
将套接字想象为一个管道,假设您通过该套接字发送http请求,您必须等待响应才能发出另一个请求,因为存在一个通过这个管道发送东西的协议。所以是的,如果你想使用一个套接字,它必须是同步的(另一方面,你可以改变协议来支持最多3个请求或类似的东西,但你必须教另一个对等的协议,并通过这样做必须以什么顺序明确他将要回答的要求) – Erik