Tcp ip TCP/IP背对背读写耗时过长

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++){

我正在尝试使用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++){
    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。它解决了问题!:)