お世話になります.現在Winsock2を用いて,サーバに接続→送受信→別の処理→同じサーバに接続→...といった処理のクライアントプログラムを作成しておりますが,下記のコードですと再接続時に10056のエラーが生じてしまします.
c
1WSAStartup(MAKEWORD(2,0), &wsaData); 2sock = socket(AF_INET, SOCK_STREAM, 0); 3connect(sock,(sockaddr *)&server,sizeof(server)); 4/*送受信*/ 5/*別の処理*/ 6connect(sock,(sockaddr *)&server,sizeof(server));//Error:10056 7/*送受信*/ 8/*別の処理*/ 9closesocket(sock); 10WSACleanup();
一方,1回の接続ごとにソケットの作成/クローズをおこなう下記のプログラムですと,エラーなく冒頭の処理を実現できますが,同じ設定のソケットを何度も作成するのは冗長に感じます.
c
1WSAStartup(MAKEWORD(2,0), &wsaData); 2sock = socket(AF_INET, SOCK_STREAM, 0); 3connect(sock,(sockaddr *)&server,sizeof(server)); 4/*送受信*/ 5/*別の処理*/ 6closesocket(sock); 7 8sock = socket(AF_INET, SOCK_STREAM, 0); 9connect(sock,(sockaddr *)&server,sizeof(server)); 10/*送受信*/ 11/*別の処理*/ 12closesocket(sock); 13WSACleanup();
冒頭の処理を実現するのにより良い方法などがありましたらお教えいただければ幸いです.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/02 02:54