興味深いCソケットの問題が発生しました。Cソケット - 一度に複数の文字列をランダムに受信
私は入ってくる文字列を受信していて、最初の2〜4文字列に対して同時に3つの文字列をランダムに受信することに気付きました。
たとえば、次の受信文字列を受信しています。
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でコーディングされたときに、この問題は表示されませんでしたので、なぜこの出来事があるか分かりません。
アイデア、人々?
Hey Neilvert、TCPを使用しています。 – Poliquin