我遇到了一個有趣的C套接字問題。C套接字 - 一次隨機接收多個字符串
我正在接收傳入的字符串,並注意到我會隨機接收3個字符串,同時爲第2〜4個字符串。
例如,我收到以下傳入字符串。
1~message~i love you\r\n
2~message~do you love me?\r\n
3~message~when are we going to meet again?\r\n
4~message~How about now?\r\n
5~message~Oh! I'm pregnant!\r\n
我添加了一個計數器來跟蹤所接收的消息的數量,並注意到計數器有時不計算所述第一3個字符串。例如
1~message~i love you\r\n
->Line 1 received
2~message~do you love me?\r\n
3~message~when are we going to meet again?\r\n
4~message~How about now?\r\n
->Line 2 received
5~message~Oh! I'm pregnant!\r\n
->Line 3 received
以下是我對打印行數
int lineNo = 1;
while ((recvBytes = recv(clntSockfd, buffer, sizeof(buffer), 0)) > 0) {
printf("%s", buffer);
memset(&buffer, 0, sizeof(buffer));
printf("Line %d received\n", lineNo++);
}
我不知道爲什麼會這樣,因爲當我用Java NIO編碼這個問題沒有出現代碼。
任何想法,鄉親?
嘿Neilvert,我正在使用TCP。 – Poliquin 2010-12-11 15:36:42