###前提・実現したいこと
VS2013 C++でソケット通信を行うプログラムを作成しています。
通信が接続完了の判定式の記述方法が分かりません。
通信完了時の判定式の記述方法を教えていただけないでしょうか。
###該当のソースコード
#include <stdio.h> #include <winsock2.h> int main(){ SOCKET s; //ソケット //接続するサーバの情報 struct sockaddr_in dest; //接続するサーバのIPアドレス char destination[] = "xxx.xxx.xxx.xxx"; // char buffer[1024]; //ソケット通信の準備 WSADATA data; WSAStartup(MAKEWORD(2, 0), &data); //接続先(サーバ)のアドレス情報を設定 memset(&dest, 0, sizeof(dest)); //ポート番号はサーバプログラムと共通 dest.sin_port = htons(11000); dest.sin_family = AF_INET; dest.sin_addr.s_addr = inet_addr(destination); //ソケットの生成 s = socket(AF_INET, SOCK_STREAM, 0); //無限ループ printf("接続中\n"); while (connect(s, (struct sockaddr *) &dest, sizeof(dest))) //接続できないから無限ループ { //サーバへの接続 while () //接続出来たから無限ループ { printf("接続済み\n"); printf("通信中\n"); } printf("接続中\n"); printf("接続切断\n"); Sleep(100); } // Windows でのソケットの終了 closesocket(s); WSACleanup();
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。