質問: 0byteデータの送信と受信 現在unixでsocketプログラムを書いています。 ftpライクなプログラムを書いているのですが、ファイルを送受信する場合、ファイルの終端をどうするかを考えています。 ファイルサイズを送るのはなしです。 sendで0byteのデータを送り、recvで0byteのデータを受信した場合にファイルの終端に達したとして処理を終らせたいと考えています。 実際、sendでは0byteのデータを送信してもエラーにはなりませんが、recvでは受信できません。 そのような処理はできるのでしょうか? よろしくおねがいします。
回答: 0byteのsendでは送信しているデータがないのだから受信側では何も受け取らない。recvはデータを受信するか接続が切られるかエラーになるかでないと返らないのでダメですね。送信側でcloseすればコネクションは切れるのでrecvは0で返るでしょう。