是否可以使用winsock的发送功能块,直到在另一端收到正在发送的数据包?
我的最终目标是能够发送5-20mb文件,同时仍能在同一连接上发送小的1kb数据包。所以我想我会阻止它直到接收器收到数据包。这样,如果另一个小数据包排队,它将不会被卡住,等待传输大文件的其余部分。
答案 0 :(得分:2)
只需使用两个单独的TCP连接即可。它们甚至可以连接到同一个主机和端口,您端的端口号也会不同。
任何网络上的停止和等待握手(即不是环回)都会非常缓慢。
答案 1 :(得分:1)
您可以发送包裹的大小
struct MyNetworkPackage {
int size;
char* data;
};
如果您从发送大小开始,您可以在另一方面推断出哪些数据属于哪个包 我也尝试在this answer解释winsock。
答案 2 :(得分:0)
没有。你不需要这样做。
答案 3 :(得分:0)
我不确定我们会对此做些什么。在TCP流上混合流量不会服务于任何目的..你能解释一下你需要做什么。最重要的是,我们在TCP中永远无法确定另一个应用程序实际上已经收到了pkt(它可能只是在他们的tcp缓冲区中)......
答案 4 :(得分:0)
如果仍有先前的数据包仍在发送,似乎“发送”将会阻止。