结束符的重要性,重要性
分享于 点击 23378 次 点评:198
结束符的重要性,重要性
最近写了一个Java Socket与C服务端通信的,Java端用了这样一段代码来接收服务端的反馈
while((result = is.read(bytes)) != -1){
doSomething();
}
结果发现这个循环要执行很长时间。如果改成if语句的话就能够很快返回,经过一番思索之后,原来是read方法在接收下一个字符的时候会阻塞,虽然服务端反馈的字节已经到达了末尾,但是这个时候循环并没有跳出,所以read方法会继续阻塞,等待下一个字节,然而并没有下一个字节,所以read方法会一直阻塞到超时,然后返回。
要解决这个问题,我想到的第一个办法就是在反馈的内容里边加入字节数,那么我就可以将byte数组的大小设置为反馈的字节数的大小,进而将while改为if语句,这样既不会造成反馈内容的丢失也能够快速返回。后来发现,如果在反馈之中加上一个结束符,如果读到了结束符,那么就跳出循环,这样实现也简单。
相关文章
- 暂无相关文章
用户点评