我面臨着與插座有問題,我會很高興,如果你能幫助...
的問題是,當我發送不止一次它會阻止更多的數據,如:爲什麼當向套接字寫入多次時,它會阻塞?
//--- 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