基本上,我有一个监听器(当它接收到新的连接时)会创建一个新的socketWorker并将该客户端的连接分配给它。
现在,如果客户端发送了一个巨大的文件(要花30秒才能完全接收),然后再发送一个只有几个字节的小文件,则只有在完全接收到该大文件后,该小文件才会被接收。
这显然是一种不好的方法,我想知道如何做到这一点,以便同时发送文件?
到目前为止,我正在使用异步方法,每次完全接收一个文件时,都会再次调用BeginReceive()来接收下一个文件(错误的方式)。
有任何解决这个问题的方法吗?
我将不胜感激!
最佳答案
您必须实现多路复用,例如SPDY。 (基本上)通过对消息部分进行成帧并在每个帧上提供流ID来完成此操作。这样,可以在单个连接上交换多个流。
或者,您可以为每个文件打开一个连接。
关于c# - 连接的TCP套接字如何同时发送/接收多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13723875/