私のUniの割り当てでは、高速アクションペースのネットワークゲームを作成する必要があるため、TCPではなくUDPを使用することを選択しました。私はUDPとTCPの両方のプログラミングにおける多くの違いを認識しており、winsockに関するMSDNのドキュメントの関連部分のほとんどを読み通しました。MSDNでは、connect()関数を介してUDPソケットを作成すると、指定されたアドレスとポートにソケットがバインドされ、その結果、作成されたソケットでsend()関数とrecv()関数を使用できるようになると記載されています。
私のアプリケーションでは、クライアントを作成し、send()関数を介して多数のパケットを送信するループバックアドレスを使用してconnect()を使用します。クライアントは、select()を呼び出した後、送信したパケットを受信します。ただし、recv()関数から取得した結果はSOCKET_ERRORであり、WSAGetLastError()を使用したエラーの説明は「既存の接続がリモートホストによって強制的に閉じられました」です。
bind()関数を使用し、sendto()を使用してループバックアドレスを介してデータを送信すると、エラーなしでパケットをrecv()します... connect()関数が想定どおりに動作しない理由を誰かが知っていますか、そして誰もがconnect()関数でUDPソケットを使用できましたか?