0
有没有办法在套接字连接保持打开时从TCP套接字读取时检测EOF?Java服务器 - TCP套接字检测EOF,但没有关闭套接字连接
大部分我所看到的例子是沿着线的东西:
int n=0;
While((n = read.inStream(data)) != -1){
destType.write(data, 0, n);
}
然而,这意味着你被迫要接受一个新的数据块,每次创建一个新的连接。 在我的情况下,这是一个恒定的图像流,通过套接字作为字节发送,我想处理每个图像,而不必关闭连接,以便我可以将所有图像与单个用户相关联,以及不以高频率持续打开和关闭连接只是更有效率。
那么有没有办法做到这一点或一些可能的选择信息?
或使用开始消息/结束消息指示符。 –
@ShaneWealti:虽然这是可能的,但它变得更加密集客户端 - 在读取数据时必须解析数据,并制定一个转义策略,以确定数据是否自然包含“结束消息”指示符。 –
我更喜欢这两种方式 - 一种以SOH开头的包含ASCII码的数据长度,可以进行结构和健全性检查的包含校验和的终止符。如果报头检查失败或终止器不良,则会丢弃所有数据,直到收到另一个可启动另一个报头检查的SOH为止。 –