客户端与服务端用BufferedReader流传输,为什么在控制台打印不出来!
应该说是客户端由控制台输入数据,然后发给服务端,结果服务端控制台不显示,而如果客户端不由控制台输入,直接在程序内创建字符串却可以传过去,帮忙看下代码哪里错了:
客户端:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
Socket client=null;
BufferedWriter bdw=null;
BufferedReader bdr=new BufferedReader(new InputStreamReader(
System.in));//数据由控制台输入,发不出去,不由控制台输入,却可以
try {
client=new Socket("localhost",8886);
bdw=new BufferedWriter(
new OutputStreamWriter(client.getOutputStream()));
String s="阀节流阀";
while(true){
s=bdr.readLine();
bdw.write(s);
bdw.flush();
}
} catch (UnknownHostException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
服务端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
ServerSocket server=null;
try {
server=new ServerSocket(8886);
Socket client=server.accept();
System.out.println("一个客户端已连接");
BufferedReader bdr=new BufferedReader(new InputStreamReader(
client.getInputStream()));
StringBuilder sb=new StringBuilder();
String msg=null;
//int len=0;
while(true){
msg=bdr.readLine();
sb.append(msg);
sb.append("\r\n");
System.out.println(sb.toString().trim());
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}