发送端主要代码
- Java code
DataOutputStream daOutStream=new DataOutputStream(socket.getOutputStream());daOutStream.write(字节数据);daOutStream.flush();
接受段主要代码
- Java code
DataInputStream daInStream=new DataInputStream(socket.getInputStream());ByteArrayOutputStream baOutputStream=new ByteArrayOutputStream(1024);while(true){ byte[] buffer=new byte[1024]; int total=0; total=daInStream.read(buffer); while((total=daInStream.read(buffer))!=-1 ){ baOutputStream.write(buffer, 0, total); }}
当读取到流尾端时
total=daInStream.read(buffer)
total没有返回-1标示,而是直接阻塞住了
------解决方案--------------------
-1表示流彻底结束,再也没东西了,那么需要发送方:
daOutStream.close();
光flush()是不够的。