Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> UDPとソケット関数(バインディングポート)

UDPとソケット関数(バインディングポート)

  

UDPはコネクションレス型プロトコルなので、ソケット関数connectはUDPには意味がないようですが、そうではありません。

ソケットには、プロトコル、ローカルアドレス/ポート、宛先アドレス/ポートなど、いくつかのプロパティがあります。

UDPの場合、socket関数はソケットを確立し、bind関数はローカルアドレス/ポート(すべてのローカルネットワークインターフェイスと互換性のあるADDR_ANYを含む)を指定します; connectは宛先アドレス/ポートを示すのに使用できます。

通常、UDPクライアントはソケット作成後にsendto関数を使用して直接データを送信しますが、送信先アドレス/ポートはsendto関数のパラメータで指定する必要があります。ソケットの確立後にUDPクライアントが最初にconnect関数を使用して宛先アドレス/ポートを指定する場合、send関数は既に相手のアドレス/ポートを知っているので、send関数を使用してデータを送信することもできます。

UDPクライアントはソケットが確立された後にsendto関数を使用して直接データを送信します、つまりデータを送信する前に、UDPはまずソケット用に別のUDPポートを選択します。 1024〜5000)の間、ソケットはバインド状態に設定されます。ソケットを設定した後にUDPクライアントが最初にbind関数を使用してローカルアドレス/ポートを指定する場合、指定されたポートを使用してUDPにデータを送信させることも可能です。 (実際には、UDPはサーバーとクライアントに関係なく、境界はぼやけています。)

UDPサーバーでもconnectを使用できます。上記のように、connectを使用して宛先アドレス/ポートを指定できます。サーバーは特定のホストからの要求のみを受け入れます。

Copyright © Windowsの知識 All Rights Reserved