2017-06-24 5 views
1

バインドされていないソケットから読み取るとどうなりますか?より具体的にUDPソケットに?read()はバインドされていないソケットを形成しますか?

ソケットが情報を送信するために使用された場合、ソケットはポート(およびアドレス)にバインドされ、そのため(addr、port)リッスンしますが、ソケットが完全にアンバインドされている場合は、動作? この場合、read操作のためにselect/epollにソケットがどのように応答しますか?

+1

試したときに何が起こったのですか? –

+0

まあ、私はそのスペックを実際に理解したいと思っています:D私は、多様で古いプラットフォームを駆使するつもりなので、実際には何の実験も信頼していません。 –

+2

なぜあなたはそれをバインドしたくないですか? – Hikke

答えて

2

さまざまに指定されているか指定されていません。

男性7 UDPする(Linux)から:

パケットを受信するために、ソケットは、バインド(2)を用いて第1のローカルアドレスにバインドすることができます。そうでなければ、ソケット層は自動的に/proc/sys/net/ipv4/ip_local_port_rangeで定義された範囲外の空きローカルポートを割り当て、ソケットをINADDR_ANYにバインドします。 MSDN recv() functionから

ソケットのローカルアドレスを知らなければなりません。サーバーアプリケーションの場合は、明示的なバインド関数または暗黙のacceptまたはWSAAccept関数を使用します。明示的なバインディングは、クライアントアプリケーションでは推奨されません。クライアントアプリケーションの場合、ソケットはconnect,WSAConnect,sendto,WSASendToまたはWSAJoinLeafを使用して暗黙的にローカルアドレスにバインドされます。

WSAEINVAL:ソケットがバインドでバインドされていない、...

私は、BSD、Solaris版、HP-UX、AIXのために答えることができません...

関連する問題