• 在TCP文件传输中如何判断java流的末尾


    感谢前辈们的解答:https://bbs.csdn.net/topics/280085530

    问题描述:

    服务端向客户端发送数据流,服务端发完了数据不关闭流。 我在客户端读流,我无法读到-1,所以无法判断流的末尾。
    有没有人指点我下,如何才能判断出流的末尾?(服务端我无法控制,我只能控制客户端)

    网络流中判断末尾的解决办法:

    1、先发送一个指定长度的头,头中指明正文长度,然后以该长度读取正文
    2、以规定的字符或格式结束
    3、关闭流或者关闭连接(如Java中关闭流后read不到后会返回-1或者null等),注意:不关流会一直read的(在timeout时间规定内)

    补充:
    Java中设置无限制超时方法socket.setSoTimeout(0);,0即代表了无限制;
    另外,在设置无限制超时后,连接的时候可以用socket.connect(SocketAddress address,int timeout)来检测限制连接超时。注意亲自动手体会妙用。

  • 相关阅读:
    LeetCode(6. Z 字形变换)
    二分查找
    线性查找
    平安寿险Java面试-社招-四面(2019/08)
    希尔排序
    中移物联网Java面试-社招-三面(2019/07)
    插入排序
    选择排序
    冒泡排序
    八皇后问题
  • 原文地址:https://www.cnblogs.com/tfxz/p/12621589.html
Copyright © 2020-2023  润新知