パケット受信 recvfrom( )について
お世話になります。
WinSockを用いてUDPパケット受信プログラムを作成しています。
環境はVC++です。ダイアログベースで、
STARTボタンを押すと受信開始します。
送信側よりパケットを1000個送信した場合、受信側では、
int num;
SOCKET sock;
char buf[1500];
//ソケットの設定は省略
while(1){
num = recvfrom(sock, buf, sizeof(buf), 0, NULL, NULL);
printf("%d",num );
if( num == SOCKET_ERROR){
break;
}
}
recvfrom()で受信していますが、送信側で送信が完了しても
while()を抜けないのか、応答なし(フリーズ)してしまいます。
printf()で表示してみると、
ちゃんと送信パケット個数回表示されています。
送信パケット数は変動するため、受信側のプログラムには
個数がわかりませんため、while()でループしています。
while()を抜ける条件はどうしたらいいのでしょうか?
ちなみにrecvfrom()の戻り値として
SOCKET_ERROR,0を指定してもエラーになります。
長くなりましたが、どうぞよろしくお願い致します。