socket.receiveの戻り値について
ソケット.receiveの返り値は、受信データの長さと受信操作の結果に基づいて決まります。
データを正常に受信した場合、socket.receiveの返り値は、受信したデータの長さ(バイト単位)を示す非負の整数です。受信操作が非ブロッキングであり、利用可能なデータがない場合は、0が返されます。
操作途中でエラーが発生した場合、負の数を返します。一般的なエラーコードには以下があります:
- 1:接続が閉じられました。
- 2:受信操作がタイムアウトしました。
- 3:接続リセットを示す。
socket.receiveはブロッキング操作であることに注意する必要があります。つまり、利用可能なデータがない場合、データが利用可能になるかタイムアウトが発生するまで待機します。非ブロッキング操作を使用したい場合、socket.receiveを呼び出す前にsocketのタイムアウト時間を設定したり、非ブロッキングのsocketモードを使用したりすることができます。