電子書籍の厳選無料作品が豊富!

ポート番号0番って何に使われているのでしょうか
wikipediaのポート番号一覧を見てみるとシステムが動的にポートを割り当てるとありますが
そもそもbindしなかったら動的に割り当てられるのではないのでしょうか?

質問者からの補足コメント

  • どう思う?

    クライアント側ではsendtoした時に動的に割り当てられるみたいですが
    sendtoする前にソケットに動的にポートを割り当てたい場合は自分宛(じゃなくてもいいのかな?)に0でbindしたら割り振ってくれるのでしょうか?

      補足日時:2015/11/19 04:39

A 回答 (4件)

IPの仕様上どう扱われるかは別の文献を参照して戴きたいですが、プログラミングの面からでは0を指定した場合には「OSに割り付けを任せる」ということになります。

よって、通常の方法では明示的にポート番号0で通信することはできません。→自動的に割り当てられる。
    • good
    • 0

sendtoを使うということは非同期送信での話かな。

送信した後で使ったポートにサーバから返信してもらうことを考えているならbindでも良いけど、送信のためのポート割り当てならconnectが正解かな。
    • good
    • 0

ヌルポインタ(0)と同じで未設定であることを示す値なので他の何にも使わない。


connectでクライアント側ポートが未設定なので動的に割り当てて欲しいという意味で指定するくらい。
クライアント側も固定番号のポートを使うプロトコルならconnectで自ポートも(0以外の)ポート番号を設定するよ。
あとbindはサーバプロセスが受信待ちするポートをOSに伝えるために呼び出すのでクライアントは使わない。
    • good
    • 0

未入力と判断する

    • good
    • 0

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