0

次のコードを使用してソケットからデータを取得しています

iResult =  recv(Socket,data_array,sizeof(data_array),0);

ドキュメントには、recv が成功した場合は no が返されると記載されています。そうしないと、エラー コードが返されます。そのエラーコードを確認するにはどうすればよいですか。つまり、取得したデータがエラー コードの値と同じ量である場合はどうなるでしょうか。

4

3 に答える 3

2

詳細については、このリンクを確認してください。

基本的に、エラーが発生するとSOCKET_ERROR(-1) が返されるため、特定のエラー コードを取得するには、 を呼び出すか、プラットフォーム固有の同等のものをWSAGetLastError()読み取る必要があります。errno

于 2013-08-12T19:53:58.717 に答える
0

ドキュメントには、recv が成功した場合は no が返されると記載されています。そうしないと、エラー コードが返されます。

いいえ、それはまったく言いません。もう一度読んでください。成功した場合は転送されたバイト数を返し、それ以外の場合は、または Windows で-1使用可能なエラーを返します。errno,WSAGetLastError().

そのエラーコードを確認するにはどうすればよいですか。つまり、取得したデータがエラー コードの値と同じ量である場合はどうなるでしょうか。

-1 バイトは転送できません。あいまいさはありません。

于 2013-08-13T01:59:21.557 に答える