Hello!大家好哇,我是灰小猿,一个超会写bug的程序猿,
最近一直在做项目的开发,所以很少有时间来打理博客,今天抽出一点时间来对我在开发中遇到的一些小问题和大家分享一下,
在做使用TCP/IP协议进行网络通信时,遇到这样一个问题,就是在同一个局域网中,我作为客户端,以另一台电脑作为服务器进行通信时发现,两者之间可以建立C/S连接,但是对于服务器发送过来的数据,我这边以read()方法来读取字符的输入流的长度时却显示读取失败,报错类型为;
java.net.SocketTimeoutException: Read timed out
即读取时间超时,但是从服务器发送过来的数据并不很长,所以按照正常情况下读取超时的情况一般是不会出现的,经过仔细研究发现是因为read()方法读取的是单个字符,会以流末尾作为结束,也就是说只要连接方一直在重复的发送数据,
那么read()就会一直在读取一个很长的输入流,这样的话当然就会很容易造成读取超时的问题了,而我做的测试也正是让服务器端一直在向客户端发送相同的数据。显然以read()方法来读取这样的操作是显然