连接的TCP套接字如何同时发送/接收多个文件?

时间:2012-12-05 13:03:50

标签: c# vb.net visual-studio-2010 sockets network-programming

基本上我有一个监听器(当它收到一个新的连接时)创建一个新的socketWorker并将连接分配给它。 现在,如果客户端发送一个巨大的文件(需要30秒才能完全接收),然后发送一个几个字节的小文件,在完全收到大文件之前,不会收到小文件。 这显然是一种糟糕的方法,我想知道如何才能这样做,以便同时发送文件?

截至目前,我正在使用异步方法,每次完全接收文件时,再次调用BeginReceive()以接收下一个文件(错误方式)。

有什么方法可以解决这个问题? 我很感激!

1 个答案:

答案 0 :(得分:2)

您必须实现多路复用,例如SPDY。这(基本上)是通过构建消息部分并在每个帧上提供流ID来完成的。这样,可以通过单个连接交换多个流。

或者,您可以为每个文件打开一个连接。