java socket 连接数据传输判断是否结束
来源:互联网 发布:淘宝网店代理是什么 编辑:程序博客网 时间:2024/04/28 11:35
Java当中的Socket类,其实是使用TCP协议进行传输的.TCP是可靠的一种传输协议.
如果想用TCP协议,并且,服务端和客户端,在没有信息进行传输的时候,也不断开连接,一般情况下,客户端会在Socket超时之前,想服务端发送一个用于维持连接的信息包,来维持连接.但是TCP协议,并不是指长连接.我们每天上网浏览网页,其实,也是以TCP协议为基本的传输协议的.只是,这个是短连接的形式,每次浏览器向服务器提交一个请求,服务短应答请求,然后断开连接.
在应用TCP协议,并且是长连接传输信息的情况下.通常会再封装一层协议的.但,观察版主的收发内容,并没有涉及这一层,所以,我这里并不知道是长连接.
首先,我们要明确一点,发送方如果不将输出流进行关闭,接收方就会认为输入流没有结束,直到超时.
其次,我们判断一个信息是否已经完全的读取完毕,除了使用输入流结束这种办法,还可以自行封装一层协议,用于信息的交互.
当然,我们也可以采用Http那样的交互方式进行信息的传递,但是,它是短连接的.
下面我来说一下,TCP长连接传输数据的一般做法.
一般情况下,我们会在TCP的基础上再封装一层协议,用户长连接的传输.协议的信息包,也分包头和包体两个部分.
包体,主要就是我们要传输的信息.(维持连接的信息包,包体可为空)
包头,一般分为三个部分.第一部分是信息包的长度(长度一般是指整个信息包的长度);第二部分是包体信息的类型(在这里指出是否是维持连接包);第三部分是信息包的序列号,一般情况下,这个序列号要确保在传输过程中唯一标识该信息包.
如果为了安全起见,还可以在包体后添加包尾,包尾数据用于对包体数据的验证)
这样,通信双方就可以根据包长来判断一次接收的操作是否结束了.
- java socket 连接数据传输判断是否结束
- java判断socket服务器端是否断开连接
- java socket判断客户端是否断开连接
- 判断SOCKET是否连接
- Java中使用Socket连接判断Inputstream结束
- 判断SOCKET是否还连接
- java中判断socket网络远端是否断开连接
- java中判断socket网络远端是否断开连接
- java中判断socket服务器端是否断开连接 [经典]
- java中判断socket网络远端是否断开连接
- java中判断socket服务器端是否断开连接
- java中判断socket服务器端是否断开连接
- java中判断socket服务器端是否断开连接
- java中判断socket网络远端是否断开连接
- java中判断socket服务器端是否断开连接
- java中判断socket服务器端是否断开连接
- java Socket判断对方是否已关闭连接
- java中判断socket服务器端是否断开连接
- 第8回 ボタンが開閉するアコーディオンメニュー
- 第9回 アニメーションを伴ったページナビゲーション
- DevExpress ASPxListBox 使用方法 积累
- 第10回 X軸を中心に画像が回転して入れ替わる
- loadrunner9.1 安 装及 破 解 方 法
- java socket 连接数据传输判断是否结束
- 大道至简,职场上做人做事做管理
- android 传感器 sensor
- 解决Clock skew detected
- 网站压力测试方法- Apache自带的性能测试工具ab的使用
- 二分查找
- 输入n个整数,输出其中最小的k个
- 输入一个整型数组,求所有子数组中和的最大值
- Windows 2003 远程桌面超时 自动断开 自动注销