|
サーバプログラムとクライアントプログラム、セットで動きます 第二回はクライアントプログラムの説明になります まず、クライアントプログラムの手順を示します ��WSAStartup WinSockライブラリ準備 ��socket ソケット作成 ��connect サーバに接続 ��recv,send データ送受信(繰り返し) ��closesocket ソケットを閉じる ��WSACleanup WinSockライブラリ後処理 � 銑◆↓ぁ銑Δ魯機璽仟Δ汎韻犬任� �◆↓�です(Connectメソッド) // 接続
bool CClient::Connect(const char* IP,u_short PORT)
{
// sockaddr_in 構造体のセット
struct sockaddr_in dstAddr;
memset(&dstAddr, 0, sizeof(dstAddr));
dstAddr.sin_port = htons(PORT);
dstAddr.sin_family = AF_INET;
dstAddr.sin_addr.s_addr = inet_addr(IP);
// ソケットの生成
m_DstSocket = socket(AF_INET, SOCK_STREAM, 0);
// 接続
if(connect(m_DstSocket, (struct sockaddr *) &dstAddr, sizeof(dstAddr))
== SOCKET_ERROR){
return false;
}
// ソケットを非同期モードにする
u_long val=1;
ioctlsocket(m_DstSocket, FIONBIO, &val);
return true;
}
まずsockaddr_in構造体を作ります dstAddr.sin_port = htons(PORT); このときPORT引数に入るポート番号はサーバ側のポート番号と合わせなければなりません dstAddr.sin_addr.s_addr = inet_addr(IP); IP引数にはIPアドレスの文字列を指定します �△�socket関数でのソケットの作成方法はサーバ側と同じです u_long val=1; ioctlsocket(m_DstSocket, FIONBIO, &val); 非同期化したソケットをデータの送受信に使います
|