みなさんこんにちは
私はソケットプログラミングの初心者です..
私は2つのプログラムを持っていました。RECEIVE および SENDRECEIVE。
RECEIVE では、サーバーとして機能するプログラムからデータを受信するためのコードを resvfrom(.....) を使用して単純に記述し、後のコードでは、サーバーとして機能するプログラムからメッセージを受信するためのコードを resvfrom(..) を使用して記述しました。 ...) また、sendto(......) を使用して、同じデータをそのサーバー プログラムに送り返しています。
マルチキャスト アドレス 224.0.0.5 およびポート 4545 の Linux マシンを使用しています。
私のプログラムはうまく動作していますが、問題は次のとおりです。
最初に RECEIVE プログラムがデータを受信し、次に SENDRECEIVE プログラムがデータを送受信します。
しかし、それは無限に実行されます.....コードをwhile(1){.......}で囲みました。
今問題は何ですか????
私のクローズ (.....) ソケットは、SENDRECEIVE プログラムに対して呼び出されません。
はいの場合、サーバーからメッセージを受信してRECEIVEプログラムに送り返した後に終了するように、どの条件を使用してソケットを閉じるのですか.....
「今回はコード全体を送信することはできませんが、ロジックは... setsocketopt(.....) の後です。
while (1)
//receiving from server int
status=resvfrom(sock,buffer,MAxBUFFERSIZE,0,(struct
sockaddr )&addr,&socklen); {.....
{..... .. .. } //sending back to
server int count=
sensto(sock,buffer,MAxBUFFERSIZE,0,(struct
sockaddr )&addr,&socklen); {... .. .
}
}
早く助けてくれませんか…」