私は非同期呼び出しを使用してTCPクライアントを作成しています。アプリの起動時にサーバーがアクティブであれば、サーバーは接続して通話をOKにします。しかし、最初の接続が失敗した場合、それ以降のconnect()の呼び出しはすべてWSAENOTCONN(10057)で失敗し、ネットワークトラフィックは生成されません(Wiresharkでチェックされます)。TCPソケットの接続に失敗した後の正しい手順は何ですか?
現在、コードはエラーが発生したときにソケットを閉じません。 TCP状態図はそれを必要としていないようです。それは単に30秒間待ってからconnect()をもう一度試みます。
その後のconnect()と次のread()の両方がWSAENOTCONNエラーを返します。
ソケットを閉じて新しいソケットを開く必要がありますか?もしそうであれば、どのエラーが私にソケットを閉じる必要がありますか。エラーがたくさんあるので、テストベンチでは決して見られないものがあります。
これは実際にはInterval Zero RTX 2009ですが、これはMS Winsock2と見なすことができますが、場所によって若干異なります。
'WSAENOTCONN'は、' connect() 'の文書化されたエラーコードではありません。 –