我面临着与插座有问题,我会很高兴,如果你能帮助...
的问题是,当我发送不止一次它会阻止更多的数据,如:为什么当向套接字写入多次时,它会阻塞?
//--- client ---
//..
send(sock, buf_1, sizeof(buf_1), 0);
for (x10){
//...
send(sock, buf_2, sizeof(buf_2), 0);
if (recv(sock, buf_2, sizeof(buf_2), 0)<0) printf("recv_2() failed");
//...
}
for (x20){
//...
send(sock, buf_3, sizeof(buf_3), 0);
if (recv(sock, buf_3, sizeof(buf_3), 0)<0) printf("recv_3() failed");
//...
}
//...
//--- server---
//...
if (recv(sock, buf_1, sizeof(buf_1), 0)<0) printf("recv_1() failed");
for (x10){
if (recv(sock, buf_2, sizeof(buf_2), 0)<0) printf("recv_2() failed");
//...
send(sock, buf_2, sizeof(buf_2), 0);
}
for (x20){
if (recv(sock, buf_3, sizeof(buf_3), 0)<0) printf("recv_3() failed");
//...
send(sock, buf_3, sizeof(buf_3), 0);
}
//...
交换块刚在第一个send()
之后,有什么想法吗?
udp是否支持多个sendto()
?
感谢您的回答 -
如果要异步发送,请使用异步调用。 – 2010-01-11 03:42:22
服务器似乎在recv()处被阻塞。打印第一个recv()得到的内容,并确保代码实际到达服务器中的第一个send()。 – 2010-01-11 04:52:21
感谢您的回复。在第一次recv()之后,它会被阻塞。没有错误显示 – Apollo 2010-01-11 13:08:54