我遇到了一个有趣的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