ソケットプログラミングでの質問です.
初心者です.
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ランキング
-
Winsockを使わずにVBでSocketを...
-
TCP/IP通信時のサーバーからの受信
-
VB6のwinsockでconnectできない
-
UDPを使って通信速度測定プログ...
-
ソケットのrecvの戻り値が0
-
winsockを使った通信での同時接...
-
オセロゲームのオンラインゲーム
-
MFCソケットについて
-
VC++でのソケット通信について
-
Javaプログラム同士のプロセス...
-
C#とTCP/IPを利用したサーバー...
-
Socket通信の0バイト受信について
-
エクセル VBA でのCOMポート...
-
Winsockで接続待ちタイムアウト...
-
異なる言語間でのソケット通信...
-
UdpClient 送信元のIPアドレ...
-
名前付きパイプの通信ポートに...
-
ポート番号0について
-
JavaでBASIC認証突破
-
recv関数でフリーズしてしまう
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
エクセル VBA でのCOMポート...
-
UDP通信する時に、相手にどうや...
-
UDP通信におけるbind関数について
-
UdpClient 送信元のIPアドレ...
-
Winsockで接続待ちタイムアウト...
-
recv関数でフリーズしてしまう
-
ソケットのクローズについて
-
ソケットのrecvの戻り値が0
-
Socket通信の0バイト受信について
-
ソケット通信 同じポート番号...
-
相手のIPアドレスを取得する方法
-
ソケットでクライアントのipア...
-
VB6のwinsockでconnectできない
-
Connectエラーが出てしまう・・...
-
ソケット通信の送受信遅延-02 ...
-
同じLAN内パソコンのIPアドレス...
-
WinSockでの通信プログラムがう...
-
UDPのソケットプログラミング
-
非ブロッキングソケットのrecv...
おすすめ情報