ソケットプログラム(TCP,UDP) EasyChat開発2
UDPの初期化 WS2_32.dllの呼び出し ソケット初期化 BIND(ソケットとポート連結) 受信スレッド開始 //WS2_32.dll if(WSAStartup(MAKEWORD(2,2),&wsadate)==SOCKET_ERROR){ return 1; } //socket address_in.sin_addr.s_addr=inet_addr(ip); mt_socket=socket(AF_INET,SOCK_DGRAM,0); if(my_socket==INVALID_SOCKET){ return 2; //bind if(bind(socket(struct sockaddr *)&g_socket_address,sizeof(address_in)) ==SOCKET_ERROR) { return 3; //thread start _beginthread(UDPReceiveThread,0,NULL); WS2_32.dllの呼び出し ソケット初期化 BIND(ソケットとポート連結) 受信スレッド開始
ターゲットIPアドレスの指定が出来ているか? UDPデータ送信 ターゲットIPアドレスの指定が出来ているか? Yes No ターゲット情報の設定 終了 送信
UDPデータ受信 受信 受信エラーか? Yes 画面の更新
EasyChat v2 [TCP] wait client でサーバーモードに。 最初に接続先(IP)を入力することでクライアント接続。 [UDP] udpでUDPモードに。 UDPモードのあと、接続先(IP)を入力すると接続
位置情報や、チャットなどはUDPを使って設計したほうがいいと感じた。 データベースサーバーとの連携を考えたい。 スレッドの同期をどうするか考えたい。 サーバーをどのような構成にするか考える。