バインドされていないソケットから読み取るとどうなりますか?より具体的にUDPソケットに?read()はバインドされていないソケットを形成しますか?
ソケットが情報を送信するために使用された場合、ソケットはポート(およびアドレス)にバインドされ、そのため(addr、port)リッスンしますが、ソケットが完全にアンバインドされている場合は、動作? この場合、read操作のためにselect/epollにソケットがどのように応答しますか?
バインドされていないソケットから読み取るとどうなりますか?より具体的にUDPソケットに?read()はバインドされていないソケットを形成しますか?
ソケットが情報を送信するために使用された場合、ソケットはポート(およびアドレス)にバインドされ、そのため(addr、port)リッスンしますが、ソケットが完全にアンバインドされている場合は、動作? この場合、read操作のためにselect/epollにソケットがどのように応答しますか?
さまざまに指定されているか指定されていません。
男性7 UDPする(Linux)から:
パケットを受信するために、ソケットは、バインド(2)を用いて第1のローカルアドレスにバインドすることができます。そうでなければ、ソケット層は自動的に
/proc/sys/net/ipv4/ip_local_port_range
で定義された範囲外の空きローカルポートを割り当て、ソケットをINADDR_ANYにバインドします。 MSDNrecv()
functionから
:
ソケットのローカルアドレスを知らなければなりません。サーバーアプリケーションの場合は、明示的なバインド関数または暗黙の
accept
またはWSAAccept
関数を使用します。明示的なバインディングは、クライアントアプリケーションでは推奨されません。クライアントアプリケーションの場合、ソケットはconnect
,WSAConnect
,sendto
,WSASendTo
またはWSAJoinLeaf
を使用して暗黙的にローカルアドレスにバインドされます。
と
WSAEINVAL:ソケットがバインドでバインドされていない、...
私は、BSD、Solaris版、HP-UX、AIXのために答えることができません...
試したときに何が起こったのですか? –
まあ、私はそのスペックを実際に理解したいと思っています:D私は、多様で古いプラットフォームを駆使するつもりなので、実際には何の実験も信頼していません。 –
なぜあなたはそれをバインドしたくないですか? – Hikke