UDPの双方向通信

Pocket

UDPで、データを待ち受けるときは、recvfromを使います。このとき、データがくるとパラメータに指定した送信先に、データを送ったアドレスが格納されています。そこに、sendtoを使ってデータを送り返すことで、はじめにデータを送ってきたプログラムと通信することができます。
あまり、UDPでの双方向通信についていいサンプルがないですし、参考にしたサイトがなくなってしまったのでこちらで説明すると、
rc = recvfrom(sd, bufptr, buflen, 0, (struct sockaddr *)&clientaddr, &clientaddrlen);
のclientaddrに送ってきたアドレスが入っているので、それを使ってsendtoすると応答を返せます。
rc = sendto(sd, bufptr, buflen, 0, (struct sockaddr *)&clientaddr, clientaddrlen);
http://publib.boulder.ibm.com/html/as400/v4r5/ic2962/info/RZAB6UDPSXMP.HTM
片方向通信の例はたくさんあるんですけどね。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください