サーバプログラムとクライアントプログラム、セットで動きます
サーバプログラムのほうはC/C++ソケットプログラミング第一回をご覧ください

第二回はクライアントプログラムの説明になります

-------

まず、クライアントプログラムの手順を示します
 WSAStartup	WinSockライブラリ準備
 socket	ソケット作成
 connect	サーバに接続
 recv,send	データ送受信(繰り返し)
 closesocket	ソケットを閉じる
 WSACleanup	WinSockライブラリ後処理

 銑◆↓ぁ銑Δ魯機璽仟Δ汎韻犬任
主に手順を見てみましょう
実装はclient.cppに書かれています

--------

◆↓です(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構造体を作ります
これにサーバのポート番号とIPアドレスを指定します。
dstAddr.sin_portメンバにはポート番号を指定します
 dstAddr.sin_port = htons(PORT);
このときPORT引数に入るポート番号はサーバ側のポート番号と合わせなければなりません
dstAddr.sin_addr.s_addr にはサーバー側のIPアドレスを指定します
 dstAddr.sin_addr.s_addr = inet_addr(IP);
IP引数にはIPアドレスの文字列を指定します
サーバープログラムとクライアントプログラムを同じコンピュータ上で起動させる場合は
127.0.0.1というテスト用IPアドレスを指定します
実際に別のコンピュータ同士で接続する場合はサーバー側のIPアドレスを指定する必要があります
IPアドレスはサーバ側のコマンドラインからipconfigコマンドで確認できます

△socket関数でのソケットの作成方法はサーバ側と同じです
で作成したソケットと先ほどのsockaddr_in構造体を指定し、サーバーに接続します
このとき、サーバ側がaccept関数を呼び出していなければ接続に失敗します
接続に成功したら非同期ソケット化します

 u_long val=1;
 ioctlsocket(m_DstSocket, FIONBIO, &val);

非同期化したソケットをデータの送受信に使います
-----------


 
#vote((^ω^)できたー[59],。(`ω´#)。できねー[63])
|(^ω^)できたー|59|
|。(`ω´#)。できねー|63|



トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS