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

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

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

到目前为止,我正在使用异步方法,每次完全接收一个文件时,都会再次调用BeginReceive()来接收下一个文件(错误的方式)。

有任何解决这个问题的方法吗?
我将不胜感激!

最佳答案

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

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

关于c# - 连接的TCP套接字如何同时发送/接收多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13723875/

相关文章:

vb.net - 私有(private)子、函数和类之间的区别

visual-studio-2010 - 为 Visual Studio 中的调试设置内存限制

c# - Entity Framework 中的字符串长度不正确

c# - ASP.Net/C# - 缺少程序集引用

c# - 在 C# 的通用列表中合并具有相同类型的项目的最有效方法是什么?

VB.Net - 如何支持隐式类型转换和自定义相等性

mysql - 如何将数据库查询添加到字符串列表

c# - 使用嵌套选择 LINQ 循环数组

c++ - Visual Studio 探查器使用大量 RAM

.net - 打开.NET 4.0项目时,Visual Studio 2010错误: “Project Target Framework Not Installed”