server端serversocket=new ServerSocket(port);
socket=serversocket.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out=new PrintWriter(socket.getOutputStream());
String msg=in.readLine();
out.println("connected");
System.out.println(msg);Client端socket=new Socket(host,port);
PrintWriter out=new PrintWriter(socket.getOutputStream());
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("connected");
msg=in.readLine();
System.out.println(msg);运行时输出为null, 大家帮忙看下是哪的问题?谢谢了
socket=serversocket.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out=new PrintWriter(socket.getOutputStream());
String msg=in.readLine();
out.println("connected");
System.out.println(msg);Client端socket=new Socket(host,port);
PrintWriter out=new PrintWriter(socket.getOutputStream());
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("connected");
msg=in.readLine();
System.out.println(msg);运行时输出为null, 大家帮忙看下是哪的问题?谢谢了
你的客户端和服务器端分别在out.println("connected");后面加上out.flush();
或者客户端和服务器端的PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
你的输出流写的时候,先把数据写到这个缓冲区
等待满足一定条件以后,缓冲区将数据写入到socket通道,发送出去
一般有几种条件
1.autoFlush机制,缓冲区达到一定大小后,自动提交
2.手动flush,用stream.flush()方法提交
3.在流关闭的时候,调用close()方法时提交缓冲区主要是为了避免过多的TCP动作设计的,这个你要去看看TCP/IP原理了
所以,楼主需要用这两种方法,数据即可如期获得。