于socket编程的一个难点:recv()函数的返回问题!
在客户端,发送"I love you!",按以下三种办法发送,其中ClientSocket是客户端的套接字描述符:
第一种:
string str("I love you!");
send(CientSocket, str.c_str(), str.size(), 0);
第二种:
string str1("I love");
string str2(" you!");
send(CientSocket, str1.c_str(), str1.size(), 0);
send(CientSocket, str2.c_str(), str2.size(), 0);
第三种:
string str1("I love");
string str2(" you!");
send(CientSocket, str1.c_str(), str1.size(), 0);
sleep(10秒);
send(CientSocket, str2.c_str(), str2.size(), 0);
请问:
服务端的recv()函数,分别返回多少次?
第一种情况,我知道肯定是返回一次。
问题是第二和第三种情况,很难区分。
关键是,我不知道recv()函数返回的条件。即当符合什么条件,recv()函数就会(才会)返回?