最新閲覧日:

Linuxとgccでプログラムしているのですが、
UDPによるデータ送受信で悩んでいます。
(すいません、前回も同じようなこと言いましたね(^^;)

TCPであれば、サーバ側は 1.ソケット生成 2.バインド
クライアント側は 1.ソケット生成 2.コネクト
で通信路が確立されますよね。

UDPはどうなるんでしょうか。コネクションを張らないということは、サーバとクライアントは区別しないんですか?

今現在、TCPのプログラムのSOCK_STREAMとIPROTO_TCPの部分だけをUDPにして実行しているのですが、UDPのくせに
Connectとかやってて気分が良くないのです・・・。(笑)

現在は、SetupForClient(サーバ側)とConnectToServer(クライアント側)というTCPの接続関数をそのまま使っています。前者はいいのですが、後者は明らかにUDP向けではないですよね。

もし、クライアント側の例があったら、教えていただければ嬉しく思います。

A 回答 (1件)

linux での経験はないので、SetupForClient() とかは知らないのですが、socket() は


何でやっても一緒のはずですね。

UDP で接続する場合には、connect() が必要無いのはおっしゃるとおり。だって、
コネクションレスの通信ですもんね。

送信する側は socket() → sendto() です。
受信する側は socket() → bind() → recvfrom() です。

ちょろっと探してみたらサンプルがありましたので参考URLに示します。このページの
下にサンプルのソースへのリンクがありますので、それを見れば、あなたなら分かるでしょう。

参考URL:http://www.fc-lab.com/network/program/berkley/da …
    • good
    • 0
この回答へのお礼

ありがとうございました。大変よくわかりました。

お礼日時:2001/07/06 00:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報

カテゴリ