socket関数は、ソケット記述とどんな関連した資源でも割り当てられて、特定の転送サービスプロバイダと結びつく原因となります。
Winsockは、アドレスファミリィの要求された組合せをサポートする最初に利用できるサービスプロバイダを利用するでしょう、ソケットタイプとプトロコルパラメタ。
作成されるソケットはデフォルト属性で上書きされるでしょう。
Windowsのために、マイクロソフトに特有のソケットオプション、SO_OPENTYPE、
Mswsock.h内にて定義されていて、こちらのデフォルトに影響を及ぼす事が出来ます
SO_OPENTYPEの詳細な説明のために、マイクロソフトに特有のドキュメンテーションを参照しましょう。
上書き属性を含まないソケットは、WSASocketを用いて、作成される事が出来ます
もし上書きを指示するパラメタ値にNULLを指定するならば、上書きされたソケット上にて、上書き操作許可 (WSASend, WSARecv,WSASendTo, WSARecvFrom, and WSAIoctl) を行う全ての関数は上書きされない使用法をサポートします。
プロトコルとそのサポートされているサービスプロバイダを選択する時、こちらのプロシージャはベースプロトコルまたはプトロコルチェイン選択するだけでしょう、それ自体によるプロトコル層ではない。
解放されたプロトコル層は、type または af のどちらかの上にて部分的な一致を考慮されません。
つまり、もし適当なプロトコルが見つからなかったならば、それはWSAEAFNOSUPPORT または WSAEPROTONOSUPPORTのエラーコードへ先導しません。
ノート
そのマニフェスト定数AF_UNSPECはヘッダファイルにて定義され続けます
、しかし、その使用は強く阻止されます、
protocol パラメタの値を解釈する際に、こちらとしては曖昧な目的に出来ます。
SOCK_STREAMのような接続志向ソケットは、全二重接続を提供します、
そして、それの上でなにかデータが送信または受信出来る前に、stateに接続しなければなりません。
他のソケットへの接続は、connect 呼び出しと共に作成されます。
一旦接続されるならば、データは send と recv 呼び出しを使用して転送される事が出来ます。
セッションが完了された時、closesocket は実行されなけれなりません。
信頼出来る実装をするのに用いられる通信プロトコル、
接続志向ソケットは、データが失われない、または複製されない事を確実にします。
もしピアプロトコルがバッファスペースを持っているデータが相当の時間以内に送信成功できないならば、
その接続は破壊されよく考えられます、そして、以降の呼び出しはエラーコードをWSAETIMEDOUTに設定して失敗します。
コネクションレス、メッセージ志向ソケットはsendtoとrecvfromを使っている任意の仲間へデータグラムの送信と受信を可能にします。
もしそのようなソケットが特定の仲間に接続しているならば、
データグラムはsendを使っている仲間送られる事が出来る、そして、こちらのrecvを使っている仲間からだけ受信される事が出来ます。
SOCK_RAWの type でソケットを受け取る時、IPv6とIPv4は異なる動きをします。
IPv4は、パケット積載量を含むパケットを受け取ります、
続く上位層ヘッダ(たとれば、TCPまたはUDPパケットのためのIPヘッダ)、
そして、IPv4パケットヘッダ。
IPv6は、パケットペイロードと続く上位層ヘッダを含むパケットを受信します。
IPv6は、IPv6パケットヘッダを決して含まないパケットを受信します。
ノート Windows NT上での、ロウソケットサポートは、管理者権限を必要とします。
SOCK_SEQPACKETの type パラメータによるソケットは、データグラムに基づきます、
しかし、擬似ストリームプロトコルとしての関数。
両方の送受信パケットのために、別々のデータグラムが使われます。
しかし、Windows Socketsは、複数に合体することができます一つのパケットへのパケットを受ける。
そのように、アプリケーションは受信を発行出来ます、色々なcoealesced複数のパケットよりデータを一回の呼び出しで検索する(たとえば、recv または WSARecvEx)。
AF_NETBIOSアドレスファミリィはSOCK_SEQPACKETの type パラメタをサポートします。
af パラメタがTCP/IP上でのNetBIOSのためのAF_NETBIOSである時、
type パラメタはSOCK_DGRAM または SOCK_SEQPACKET である場合があります。
AF_NETBIOS アドレスファミリィのために、
protocol パラメタは負数として表されるLANアダプタ番号です。
Windows XP 以降での、
以下の命令は、サービスプロバイダのインストールを決定するためにWindows Socketsカタログをリストするのに用いられる事ができます、アドレスファミリィ、ソケットタイプ、そしてプロトコルはサポートされます。
|