是否可以使用同一客户端 TIdTCPServer / TIdTCPClient 同时发送/接收大型流。
我在客户端创建了一个线程来处理传入的请求。
客户收到请求但在上一次请求完成(发送或接收)之前不会将其发送回服务器。
答案 0 :(得分:3)
是否可以使用同一客户端的TIdTCPServer / TIdTCPClient同时发送/接收大型流。
是的,可能。但如何你这样做取决于你的协议实现。 TCP套接字是双向和全双工的。您可以在另一个线程正在接收时发送一个线程。或者您可以将流分解为块,以便一个线程可以发送块,读取块,发送块,读取块等。
我在客户端创建了一个线程来处理传入的请求。
客户收到请求但在上一次请求完成(发送或接收)之前不会将其发送回服务器。
这意味着您正在一个线程中进行处理,并以串行方式一次完成一个请求的整个处理,在此之前您不会从连接中读取下一个请求,直到先前发送了上一个响应。虽然这是典型的模型,但它可能不是正确的模型,具体取决于您的特定需求。