ソケットプログラミングでの質問です.
初心者です.
UDPクライアントで
sock = socket(PF_INET,SOCK_DGRAM,0)
でUDPソケットを生成した後に
bind()なしで,UDPサーバ宛にsendto()
を行った場合,
サーバのrecvfrom()でクライアントの
IPアドレスとポート番号が受け取ることができると思いますが
ここでのIPアドレスはクライアントのアドレスで,
ポート番号は他のクライアントの他ソケットが使用していないポート番号
が受け取ることができると考えてよろしいですか?
クライアントのsendto()で自動的にポート番号が割り当てられるが,
クライアントが,どのポートから送信したのかを知る方法はないですか?
No.2ベストアンサー
- 回答日時:
No.1 です。
回答が遅くなってしまったことをお詫びします。
connect() や bind() なしで sendto() を呼び出した場合は、sendto() の
処理が実行される時点でソケットと任意のポートの結びつけが行われます。
従って、sendto() を呼び出したあとで getsockname() を使用すれば、
送信元のポート番号を取得することが可能なはずです。
No.1
- 回答日時:
あまり時間がないため、手短に書かせていただきます。
まず、bind() せずにデータを送信した場合、サーバ側で受信した
データグラムに含まれるポート番号は、koton_ さんの認識どおり、
クライアントで任意に割り当てられたポート番号となります。
(この一時的に割り当てられるポート番号をエフェメラルポートと
言ったりします。)
次に、一般的なBSDライクの Socket APi であれば、
送信に使用したポート番号をクライアント側で知るためには、
getsockname() という関数を使用するのが一般的だと思います。
関数の詳細については、申し訳ないですがお手持ちのマニュアルや
インターネット等で検索してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ドメイン・サーバー・クラウドサービス スカパー(@skyperfectv.co.jpのドメインメール) POPサーバとポートについて @s 1 2023/07/03 11:43
- ルーター・ネットワーク機器 10Gbpsの恩恵 5 2022/11/16 15:48
- ルーター・ネットワーク機器 YAMAHAルータ設定について 1 2022/09/03 16:31
- ノートパソコン ESETの初期インストールの仕方 1 2022/10/14 08:26
- 個人事業主・自営業・フリーランス インボイス制度は、クライアントごとに請求書を分ける事はできますか? 6 2023/04/03 14:22
- ゲーム android craftsmanのゲームをマルチプレイでしたい 1 2023/03/20 15:53
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- CPU・メモリ・マザーボード Socket AM4マザーに、レガシーなインタフェースが多数あるのはなぜ? 3 2023/02/17 10:47
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- オンラインゲーム とても急いでいます。Minecraft Java版についてです。 MinecraftのJava版でマ 1 2023/03/15 21:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6のwinsockでconnectできない
-
Winsockで接続待ちタイムアウト...
-
ソケットのrecvの戻り値が0
-
エクセル VBA でのCOMポート...
-
Socket通信の0バイト受信について
-
TCP/IP通信時のサーバーからの受信
-
【ajax】 XMLHttpRequestオブジ...
-
パケット通信時のIPヘッダの取...
-
UDP通信におけるbind関数について
-
VC6.0ソケット通信プログラムに...
-
ソケットでクライアントのipア...
-
RS-232Cのポート番号を知りたい
-
非ブロッキングソケットのrecv...
-
WINSOCKのWSACleanupについて
-
Javaのパケットキャプチャについて
-
MFCソケットについて
-
VC++でのソケット通信について
-
ソケット通信 同じポート番号...
-
Winsockプログラミング Connec...
-
Android Socket.connectエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
Winsockで接続待ちタイムアウト...
-
recv関数でフリーズしてしまう
-
VB6のwinsockでconnectできない
-
UDP通信する時に、相手にどうや...
-
ソケットのクローズについて
-
エクセル VBA でのCOMポート...
-
ソケットのrecvの戻り値が0
-
UdpClient 送信元のIPアドレ...
-
Socket通信の0バイト受信について
-
WinSockでの通信プログラムがう...
-
同じLAN内パソコンのIPアドレス...
-
ソケット通信 同じポート番号...
-
VC++でのソケット通信について
-
Connectエラーが出てしまう・・...
-
CreateFile関数でCOMポートが開...
-
VB6‥ソケットについて
-
Winsockを使わずにVBでSocketを...
-
SIPがNATを越えられない理由
おすすめ情報