基本上我有一个监听器(当它接收到新连接时)创建一个新的 socketWorker 并将连接分配给客户端。现在,如果客户端发送一个大文件(例如,需要 30 秒才能完全接收)然后发送一个几个字节的小文件,则在完全接收到大文件之前不会收到小文件。这显然是一种不好的方法,我想知道我该怎么做才能同时发送文件?
截至目前,我正在使用异步方法,每次完全接收到文件时,都会再次调用 BeginReceive() 以接收下一个文件(不好的方式)。
有任何解决这个问题的方法吗?我会很感激的!
基本上我有一个监听器(当它接收到新连接时)创建一个新的 socketWorker 并将连接分配给客户端。现在,如果客户端发送一个大文件(例如,需要 30 秒才能完全接收)然后发送一个几个字节的小文件,则在完全接收到大文件之前不会收到小文件。这显然是一种不好的方法,我想知道我该怎么做才能同时发送文件?
截至目前,我正在使用异步方法,每次完全接收到文件时,都会再次调用 BeginReceive() 以接收下一个文件(不好的方式)。
有任何解决这个问题的方法吗?我会很感激的!
您必须实现多路复用,例如SPDY所做的那样。这(基本上)是通过构建消息部分并在每个帧上提供流 ID 来完成的。这样,可以通过单个连接交换多个流。
或者,您可以为每个文件打开一个连接。