Tcp ip TCP/IP背对背读写耗时过长
我正在尝试使用TCP/IP传输消息。我发现,如果一方总是充当发送方,而另一方总是充当接收方,则传输速度很快。但如果双方更频繁地转换角色,就会变得非常缓慢 具体而言,此操作需要6毫秒:Tcp ip TCP/IP背对背读写耗时过长,tcp-ip,Tcp Ip,我正在尝试使用TCP/IP传输消息。我发现,如果一方总是充当发送方,而另一方总是充当接收方,则传输速度很快。但如果双方更频繁地转换角色,就会变得非常缓慢 具体而言,此操作需要6毫秒: **Server:** for (int i = 0; i < 5000; i++){ read(connfd, s1, 128); read(connfd, s2, 128); } **Client:** for (int i = 0; i < 5000; i++){
**Server:**
for (int i = 0; i < 5000; i++){
read(connfd, s1, 128);
read(connfd, s2, 128);
}
**Client:**
for (int i = 0; i < 5000; i++){
write(sockfd, s1, 128);
write(sockfd, s2, 128);
}
**服务器:**
对于(int i=0;i<5000;i++){
读取(connfd,s1,128);
读取(connfd,s2,128);
}
**客户:*
对于(int i=0;i<5000;i++){
写入(sockfd,s1,128);
写入(sockfd,s2,128);
}
此操作需要98毫秒:
**Server:**
for (int i = 0; i < 5000; i++){
read(connfd, s1, 128);
write(connfd, s2, 128);
}
**Client:**
for (int i = 0; i < 5000; i++){
write(sockfd, s1, 128);
read(sockfd, s2, 128);
}
**服务器:**
对于(int i=0;i<5000;i++){
读取(connfd,s1,128);
写入(connfd,s2,128);
}
**客户:*
对于(int i=0;i<5000;i++){
写入(sockfd,s1,128);
读取(sockfd,s2,128);
}
有没有办法减少这种延迟?禁用Nagle的算法。(谷歌TCP_NODELAY)非常感谢,Sneftel。它解决了问题!:)