都知道,socket编程有客户端和服务端,而客户端有两个方法可以获取输入输出流,与服务端进行通信。那么就有一个困扰我的问题了,在客户端应该只封装了一个输入流和一个输出流,并且两者保持通信。这是不是意味着,在客户端通过输出流将数据write出去,又可以通过输入流将数据read进来。我用代码实验过了,如果read代码在服务端,正常运行,如果服务端不read,而放在客户端就会报出数组越界异常,而且数组的内部是空的,并没有读取到数据?这就是我的问题了,一直不明白原因
------解决方案--------------------
客户端read读取到的是服务端write的内容,反之,服务端read读取到的内容是客户端write的内容。
------解决方案--------------------
客户端和服务器端的read和write方法一般成对出现的!只要你write了,而且代码没有错误,那么read就可以从通道里面读取数据,出现空情况,要么没有写,要么写了没有刷新缓冲区
------解决方案--------------------
楼主你理解有误,两个不同"管道" 的write和read 当然不能实现读写数据