K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>一方、TcpServerがserver_send.txtを送る際は、終了のマークとして0を送っていませんし、さらに‐1も送っていませんが、TcpClient側は‐1の受信で受信の終了を認識しています。 > >TcpClient.javaは、InputStremのread()メソッドで入力を1バイトずつ >読み込んでいますが、read()メソッドは、正常に1バイト読み込んだ時、 >0~255の値を返します。つまり、TcpClientが-1を受信するということは >あり得ません。-1が返るのは、「ストリームの終わりに達した場合」です。 > >https://docs.oracle.com/javase/jp/6/api/java/io/InputStream.html#read() > >なぜクライアントから見てストリームが終わるのかといえば、それは >サーバ側でソケットをclose()したからです。 > >TcpClient.javaにて、終了のマーク0を送信しているのは、このソケットは >まだサーバからデータを返すのに使うので、このタイミングでclose()するわけには >いかないからです。 > >これで回答になっておりますでしょうか? >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!