흥미로운 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
를 들어 다음은 내가 자바 NIO로 코딩 할 때이 문제가 나타나지 않았기 때문에 이런 일이 왜 잘 모르겠어요 줄 번호
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++);
}
인쇄에 내 코드입니다.
의견이 있으십니까?
안녕 Neilvert, TCP를 사용하고 있습니다. – Poliquin