Java Socket 使用BufferedWriter和BufferedReader要注意readLine 以及换行标志
来源:互联网 发布:二叉树的遍历 java 编辑:程序博客网 时间:2024/05/17 09:38
当接收的类使用的是BufferedReader,发送的类是BufferedWriter的时候,要注意发送的一行要有换行标识符,否则读取不到消息。
请看下面一个例子,服务器接收不到客户端的信息。
服务器:
import java.io.*;import java.net.ServerSocket;import java.net.Socket;public class Server { public static void main(String[] args) throws Exception { ServerSocket serverSocket = new ServerSocket(8088); Socket socket = serverSocket.accept(); System.out.println("一个客户端连接了"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println("客户端:" + bufferedReader.readLine()); Thread.sleep(100000); socket.close(); serverSocket.close(); }}
import java.io.*;import java.net.ServerSocket;import java.net.Socket;/** * Created by 290248126 on 14-5-10. */public class Client { public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost",8088); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); bufferedWriter.write("你好,我是客户端!"); bufferedWriter.flush(); System.out.println("我们已经发送出去"); Thread.sleep(100000); socket.close(); }}
在上面的客户端中,write的时候并没有发送换行标识符,因此服务器在接收的时候,readLine是读取一行,没遇到换行就读取不出来。
因此服务器接收不到客户端的信息。
解决方案方法如下:
只需要修改客户端部分:
bufferedWriter.write("你好,我是客户端!\n");
或者:
bufferedWriter.write("你好,我是客户端!");bufferedWriter.newLine();
使用bufferedWriter的newLine()方法。
记得发送过去的时候要调用flush()刷新。
0 0
- Java Socket 使用BufferedWriter和BufferedReader要注意readLine 以及换行标志
- Java socket 使用BufferedReader和BufferedWriter注意事项
- java Socket通信使用BufferedReader和BufferedWriter的注意事项
- java Socket通信使用BufferedReader和BufferedWriter的注意事项
- java Socket通信使用BufferedReader和BufferedWriter的注意事项
- java Socket通信使用BufferedReader和BufferedWriter的注意事项
- java Socket通信使用BufferedReader和BufferedWriter的注意事项
- BufferedReader和BufferedWriter使用
- java BufferedReader和BufferedWriter
- Java BufferedReader 和 BufferedWriter
- Java 使用BufferedWriter和BufferedReader copy file
- Socket使用BufferedReader和BufferedWriter读不到数据的问题
- JAVA-IO流中缓存区的使用(BufferedReader和BufferedWriter)以及复制内容
- java BufferedReader 和 BufferedWriter 用法
- Java IO BufferedReader和BufferedWriter
- Java中的 BufferedWriter 和 BufferedReader
- Java:bufferedReader.readLine()读取文件换行问题
- BufferedWriter.write()与BufferedReader.readLine() (附带Java中的Runtime exec)
- POJ 2253 Frogger(并查集+二分)
- 数理统计与概率知识杂谈
- Mysql数据类型
- 多选框全选功能
- MacOSX上那些有用的小插件
- Java Socket 使用BufferedWriter和BufferedReader要注意readLine 以及换行标志
- ORACLE备份保留策略(RETENTION POLICY)
- Linux下部署svn服务器
- C++实现二叉树的非递归前、中、后序遍历
- PHP连接mssql的配置
- Jasper Server Page Customization
- 拓扑排序。
- ubuntu 安装 xampp
- Ruby 获取当前的时间