有winsock的发送功能块吗?

时间:2010-07-08 16:58:02

标签: windows visual-studio-2010 winsock

是否可以使用winsock的发送功能块,直到在另一端收到正在发送的数据包?

我的最终目标是能够发送5-20mb文件,同时仍能在同一连接上发送小的1kb数据包。所以我想我会阻止它直到接收器收到数据包。这样,如果另一个小数据包排队,它将不会被卡住,等待传输大文件的其余部分。

5 个答案:

答案 0 :(得分:2)

只需使用两个单独的TCP连接即可。它们甚至可以连接到同一个主机和端口,您端的端口号也会不同。

任何网络上的停止和等待握手(即不是环回)都会非常缓慢。

答案 1 :(得分:1)

您可以发送包裹的大小

struct MyNetworkPackage {
    int size;
    char* data;
};

如果您从发送大小开始,您可以在另一方面推断出哪些数据属于哪个包 我也尝试在this answer解释winsock。

答案 2 :(得分:0)

没有。你不需要这样做。

答案 3 :(得分:0)

我不确定我们会对此做些什么。在TCP流上混合流量不会服务于任何目的..你能解释一下你需要做什么。最重要的是,我们在TCP中永远无法确定另一个应用程序实际上已经收到了pkt(它可能只是在他们的tcp缓冲区中)......

答案 4 :(得分:0)

如果仍有先前的数据包仍在发送,似乎“发送”将会阻止。