WinSockの初期化を行う。
[宣言]
int WSAStartup( WORD wVersionRequested , LPWSADATA lpWSAData );
[引数]
wVersionRequested - 要求するWinSockのバージョン
lpWSAData - WinSockの詳細情報
[戻り値]
成功時は、0 を返す。
失敗時は、0 以外の値を返す。
ソケット(Soket Descriptor)を作成する関数。
[宣言]
SOCKET socket ( int af , int type , int protocol );
[引数]
af - アドレスファミリ(通常は、AF_INET)
type - ソケットの種類
SOCK_STREAM : TCPで使用する
SOCK_DGRAM : UDPで使用する
protocol - 使用するプロトコル
[戻り値]
成功時は、新しいソケット(Soket Descriptor)を返す
失敗時は、INVALID_SOCKETを返す。
ドットで区切った10進数のIPアドレスを32bitの整数で表したIPアドレスに変換する。
[宣言]
unsigned long inet_addr ( const char FAR *cp );
[引数]
cp - ドットで区切った10進数のIPアドレスの文字列へのポインタ
[戻り値]
成功時は、32bitの整数で表したIPアドレスを返す。
(ネットワークのバイト並び)
失敗時は、INADDR_NONEを返す。
ホスト名からホスト情報を取得する。
[宣言]
struct hostent FAR * gethostbyname ( const char FAR *name );
[引数]
name - ホスト名の文字列へのポインタ
[戻り値]
成功時は、ホスト情報のポインタを返す。
失敗時は、NULLを返す。
ローカルのIPアドレスとポート番号を指定する。
[宣言]
int bind ( SOCKET s , const struct sockaddr FAR *addr , int namelen );
[引数]
s - ソケット(Soket Descriptor)
addr - 接続するソケットのアドレスへのポインタ
namelen - ソケットのアドレスの長さ
[戻り値]
成功時は 0 を返す。
失敗時は SOCKET_ERROR を返す。
指定のソケットを使用してサーバに接続要求を出し、通信路の確立をします。
引数には、サーバのIPアドレスやポート番号を指定する。
[宣言]
int connect (SOCKET s , const struct sockaddr FAR *name , int namelen );
[引数]
s - ソケット(Soket Descriptor)
name - 接続するサーバのアドレスへのポインタ
namelen - サーバのアドレスの長さ
[戻り値]
成功時は 0 を返す。
失敗時は SOCKET_ERROR を返す。
一つまたは複数のソケットの状態を調べる関数です。
送受信を多重化することができます。
[宣言]
int select ( int nfds , fd_set FAR *readfds , fd_set FAR *writefds , fd_set FAR *exceptfds , const struct timeval FAR *timeout );
[引数]
nfds - バークレイソケットライブラリとの互換性のためにある、Windowsでは無視される。
readfds - 受信用のソケットのセットへのポインタ
writefds - 送信用のソケットのセットへのポインタ
exceptfds - エラーの状態、またはバンド外データ
timeout - タイムアウト秒数
[戻り値]
0 以上の場合は、条件に合うソケットの数
0 の場合は、タイムアウトした場合
失敗時は SOCKET_ERROR を返す。
ソケットを使用してデータを送信します。
送信したデータは接続しているサーバに届きます。
[宣言]
int send ( SOCKET s , const char FAR *buf , int len , int flags );
[引数]
s - ソケット(Soket Descriptor)
buf - 送信バッファへのポインタ
len - 送信バッファのサイズ
flag - 呼び出し方法の指定(MSG_DONTROUTE , MSG_OOB)
[戻り値]
成功時は、送信されたバイト数を返す。
失敗時は、SOCKET_ERROR返す。
ソケットを使用してデータを受信します。
受信するデータは、接続しているサーバが送信したものです。
[宣言]
int recv ( SOCKET s , char FAR *buf , int len , int flags );
[引数]
s - ソケット(Soket Descriptor)
buf - 受信バッファへのポインタ
len - 受信バッファのサイズ
flag - 呼び出し方法の指定(MSG_PEEK , MSG_OOB)
[戻り値]
成功時は、受信バイト数を返す。
接続が終了していると 0 を返す。
失敗時は、SOCKET_ERROR返す。
ソケットを使用して送信先を指定してデータを送信します。
[宣言]
int sendto ( SOCKET s , const char FAR *buf , int len , int flags , const struct sockaddr FAR *to , int token );
[引数]
s - ソケット(Soket Descriptor)
buf - 送信バッファへのポインタ
len - 送信バッファのサイズ
flag - 呼び出し方法の指定(MSG_DONTROUTE , MSG_OOB)
to - 送信先ソケットのアドレスへのポインタ
token - 送信先ソケットのアドレスのサイズ
[戻り値]
成功時は、送信されたバイト数を返す。
失敗時は、SOCKET_ERROR返す。
ソケットを使用して受信するデータの送信元を指定してデータを受信します。
[宣言]
int recvfrom ( SOCKET s , char FAR *buf , int len , int flags , struct sockaddr FAR *from , int FAR *fromlen );
[引数]
s - ソケット(Soket Descriptor)
buf - 受信バッファへのポインタ
len - 受信バッファのサイズ
flag - 呼び出し方法の指定(MSG_PEEK , MSG_OOB)
from - 送信側のアドレスを持つバッファへのポインタ
fromlen - 送信側のアドレスを持つバッファのサイズへのポインタ
[戻り値]
成功時は、受信バイト数を返す。
接続が終了していると 0 を返す。
失敗時は、SOCKET_ERROR返す。
指定のソケットの送信や受信を無効にする。
[宣言]
int shutdown ( SOCKET s , int how );
[引数]
s - ソケット(Soket Descriptor)
how - 作用フラグ
0 - recvを無効にする
1 - sendを無効にする
2 - sendとrecvを無効にする
[戻り値]
成功時は 0 を返す。
失敗時は SOCKET_ERROR を返す。
socket関数で作成されたソケットを破棄(閉じる)します。
[宣言]
int closesocket ( SOCKET s );
[引数]
s - ソケット(Soket Descriptor)
[戻り値]
成功時は 0 を返す。
失敗時は SOCKET_ERROR を返す。
WinSockのリソースの解放を行う。
[宣言]
int WSACleanup(void);
[引数]
なし
[戻り値]
成功時は 0 を返す。
失敗時は SOCKET_ERROR を返す。
WinSockのエラーコードを取得します。
[宣言]
int WSAGetLastError(void);
[引数]
なし
[戻り値]
エラーコード
サーバのホスト情報を非同期で取得します。
取得できたなどのイベントはウィンドウメッセージで通知されます。
この関数をキャンセルするには、WSACancelAsyncRequest関数を使います。
[宣言]
HANDLE WSAAsyncGetHostByName ( HWND hWnd , u_int wMsg , const char FAR *name , char FAR *buf , int buflen );
[引数]
hWnd - ホスト情報を取得したイベントのメッセージを通知するウィンドウのハンドル
wMsg - 通知するメッセージ
name - ホスト情報を取得するサーバの名前へのポインタ
buf - ホスト情報を格納するバッファへのポインタ
buflen -ホスト情報を格納するバッファのサイズ
[戻り値]
成功時は、非同期なタスクのハンドルを返す。
失敗時は、0 を返す。
WSAAsyncGetHostByName関数で作成された非同期なタスクをキャンセルします。
[宣言]
int WSACancelAsyncRequest( HANDLE hAsyncTaskHandle );
[引数]
hAsyncTaskHandle - WSAAsyncGetHostByName関数の戻り値である非同期なタスクのハンドル
[戻り値]
成功時は、0 を返す。
失敗時は、SOCKET_ERRORを返す。
指定のソケットの接続や送信や受信や切断などのイベントをウィンドウメッセージで通知させるようにします。
キャンセルするには、通知するメッセージとイベントを 0 に設定します。
複数のソケットを扱う場合は、ソケット毎にWSAAsyncSelect関数を実行します。
同一ソケットに対して複数回WSAAsyncSelect関数を実行した場合、最後に実行したWSAAsyncSelect関数だけ有効になり、それ以前のは無効になるので注意してください。
[宣言]
int WSAAsyncSelect ( SOCKET s , HWND hWnd , u_int wMsg , long lEvent );
[引数]
s - イベントをウィンドウメッセージで通知させるようにするソケット
hWnd - ソケットイベントのウィンドウメッセージを受け取るウィンドウのハンドル
wMsg - 通知するメッセージ
lEvent - 通知させるイベントのタイプ
FD_CONNECTは、ソケットへの接続が完了したことを通知します。
FD_WRITEは、ソケットの送信バッファに空きができたことを通知します。
FD_READは、ソケットの受信バッファにデータがあることを通知します。
FD_CLOSEは、ソケットへの接続が終了したことを通知します。
[戻り値]
成功時は、0 を返す。
失敗時は、SOCKET_ERRORを返す。