黑马程序员技术交流社区
标题:
网络编程中客户端与服务端等待的问题?
[打印本页]
作者:
kj1989
时间:
2014-3-27 20:54
标题:
网络编程中客户端与服务端等待的问题?
为什么网络编程时,在客户端和服务端传送数据时,都存在等待的情况?如何消除此种影响?
作者:
向阳泪无痕
时间:
2014-3-27 21:46
这个等待是必须的。。。。 不可能消除 原因是 你在使用IO流读取,发送数据的时候使用了阻塞语句
如: read() readLine() a = s.accept() 等 这都是阻塞语句。如当 read() 去读取一个字节的时候,如果没有读取到数据,那么它会处于等待 状态。 直到读取到数据,才会往下执行。
作者:
蒋珍珍
时间:
2014-3-31 11:37
如果你用到了缓冲技术的话,首先要确保将数据刷新到了流中。
然后之所以都等待,是因为read、readLine方法都属于阻塞式方法,如上所说,它读不到数据就会陷入等待状态,如果你读完数据仍等待的话也就是客户端的数据都输出之后,那可能就是服务端这边并未读取到换行符。
解决方法:
你可以在两端都加换行符,或是在客户端输出完数据之后,可以加一句sc.shutdownOutput()
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2