Delphi - 可以indy TIdTCPClient同时发送/接收大流

时间:2015-09-30 20:34:10

标签: delphi indy

是否可以使用同一客户端 TIdTCPServer / TIdTCPClient 同时发送/接收大型流。

我在客户端创建了一个线程来处理传入的请求。

客户收到请求但在上一次请求完成(发送或接收)之前不会将其发送回服务器。

1 个答案:

答案 0 :(得分:3)

  

是否可以使用同一客户端的TIdTCPServer / TIdTCPClient同时发送/接收大型流。

是的,可能。但如何你这样做取决于你的协议实现。 TCP套接字是双向和全双工的。您可以在另一个线程正在接收时发送一个线程。或者您可以将流分解为块,以便一个线程可以发送块,读取块,发送块,读取块等。

  

我在客户端创建了一个线程来处理传入的请求。

     

客户收到请求但在上一次请求完成(发送或接收)之前不会将其发送回服务器。

这意味着您正在一个线程中进行处理,并以串行方式一次完成一个请求的整个处理,在此之前您不会从连接中读取下一个请求,直到先前发送了上一个响应。虽然这是典型的模型,但它可能不是正确的模型,具体取决于您的特定需求。

相关问题