1.ソケットの作成を行う。↓2.ローカルのポート番号を指定する。↓3.サーバを指定して送受信を行う。↓4.ソケットを破棄する。4段階から成り立ちます。TCPとは違って、サーバには接続しません。「ローカルのポート番号を指定する。」とは、サーバからデータを受信するときに使うローカルのポート番号を指定するということです。送信は、送信先のサーバのIPアドレスとポート番号を指定してデータを送信します。受信は、受信するデータを送信したサーバのIPアドレスとポート番号を指定してデータを受信します。Interface)を使用してもう少し詳しくあらわすと、WSAStartup関数でWinSockの初期化を行います。(プログラムの開始時のみ)socket関数でソケットの作成を行います。bind関数でローカルのポート番号を指定する。サーバのIPアドレスを取得します。inet_addr関数およびgethostbyname関数でサーバのIPアドレスの取得を行います。(送信と受信で使用します)ソケットに対して、sendto関数でサーバを指定して送信、recvfrom関数でサーバを指定して受信を行います。closesocket関数でソケットを破棄します。WSACleanup関数でWinSockのリソースを解放する。(プログラムの終了時のみ)となります。■APIの使用方法WinSockのAPIを使用した例を示します。WinSockを使用する際は、wsock32.libをリンクwinsock.hをインクルードする必要があります。メインのAPIとなっています。{fprintf(stderr,"WinSockの初期化失敗\n");exit(-1);}WSAStartup関数の第一引数は、要求するWinSockのバージョンを入れます。(*)(void))(WSACleanup))は、終了時にWSACleanup関数を実行するようにしています。INVALID_SOCKET){fprintf(stderr,"ソケット作成失敗\n");}socket関数の第1引数には、インターネットを表すPF_INETを指定して、第2引数にはUDPを表すSOCK_DGRAMを指定しています。第3引数は、プロトコルを指定します。SOCKET_ERROR){fprintf(stderr,"受信ポート番号の指定に失敗\n");}サーバが送信したデータを受信するローカルのポート番号をbind関数で指定しています。bind関数の第1引数は、socket関数で作成されたソケットです。第2引数は、ソケットのアドレスの構造体へのポインタで、第3引数はその構造体のサイズです。short)port)とありますが、これはホストのバイト並び(16bit)をネットワークのバイト並び(16bit)に変換しているのです。32bitのホストのバイト並びをネットワークのバイト並びに変換するには、htonl関数を使います。逆にネットワークのバイト並びをホストのバイト並びに変換するには、ntohs関数とntohl関数があります。*)((serverhostent->h_addr_list)[0]));}}svNameにドットで区切った10進数のIPアドレスが入っている場合は、inet_addr関数で32bitの整数値に変換されます。23E92D2svNameにサーバのホスト名が入っている場合は、gethostbyname関数でサーバのホスト情報を取得します。サーバのホスト情報の中からIPアドレスを取り出します。SOCKET_ERROR){fprintf(stderr,"サーバへの送信失敗\n");}sendto関数の第1引数は、socket関数で作成されたソケットです。第2引数は送信する文字列のバッファで、第3引数は文字列の長さです。第5引数は、送信先サーバのアドレスの構造体へのポインタで、第6引数はその構造体のサイズです。*/recvfrom関数の第1引数は、socket関数で作成されたソケットです。第2引数は受信するバッファで、第3引数は受信バッファのサイズです。第5引数は、受信するデータを送信したサーバのアドレスの構造体へのポインタで、第6引数はその構造体のサイズの入った変数へのポインタです。*/closesocket(soc);closesocket関数の第1引数は、socket関数で作成されたソケットです。*/WSACleanup();WinSockのリソースを解放する関数ですが、プログラムの初めにatexit()を使って終了時に呼び出されるようにしておけばいいと思います。●エラーコードを取得する場合WinSockのAPIを使用してエラーになった場合、WSAGetLastError関数でエラーコードを取得することができます。Programming。