質問編集履歴

1 接続等の確認を「printf」で表示するように変更

FENREL

FENREL score 19

2016/10/20 21:36  投稿

ソケット通信の接続判定
###前提・実現したいこと
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);
   
   //無限ループ
   TxtB2->Text = "接続中";
   printf("接続中\n");
   while (connect(s, (struct sockaddr *) &dest, sizeof(dest)))   //接続できないから無限ループ
   {
       //サーバへの接続
       while ()   //接続出来たから無限ループ
       {
           TxtB2->Text = "接続済み";
           TxtB4->Text = "通信中";
           printf("接続済み\n");
           printf("通信中\n");
       }
       TxtB2->Text = "接続中";
       TxtB4->Text = "通信切断";
       printf("接続中\n");
       printf("接続切断\n");
       Sleep(100);
   }
   // Windows でのソケットの終了
   closesocket(s);
   WSACleanup();
```
  • VC++

    203 questions

    VC++ (Visual C++) とは、Microsoft製のC++のための統合開発環境です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る