黑马程序员技术交流社区

标题: 网络编程中客户端与服务端等待的问题? [打印本页]

作者: 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