これは、Windows、C ++でのrecvfrom()の使用に関する非常に基本的な質問です(うまくいけば)。
メッセージを送信し、その代わりに文字メッセージを受信する非常に基本的なUDP関数を実装しています。recvfrom()を呼び出すと、適切なメッセージが返されますが、関数は受信したバイト数(文字)を返しません。代わりに0を返します。スニペット:
sendto(sock, "10000;1;Chris\0", 14, 0,
(struct sockaddr FAR *) &sin, sizeof(sin));
if(nchars = recvfrom(sock, buf, LINELEN, 0, NULL, NULL) < 0)
errexit("recvfrom failed: error %d\n", GetLastError());
buf[nchars] = '\0';
私のリターンメッセージにはヌル文字を追加する必要がありますが、ncharsは0として返され続けるため、これは困難です。recvfrom()が受信したバイト数を返さない理由はありますか?