A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 哇塞哇 中级黑马   /  2014-6-23 08:03  /  1414 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 哇塞哇 于 2014-6-27 10:23 编辑
  1. import java.io.*;
  2. import java.net.*;

  3. public class Client{
  4.         public static void main(String [] args)throws Exception{
  5.                 Socket o=new Socket("192.168.1.102",7777);
  6.                 System.out.println("请输入字符串");
  7.                 BufferedReader d=new BufferedReader(
  8.                 new InputStreamReader(System.in));
  9.                 BufferedReader dd=new BufferedReader(new InputStreamReader(o.getInputStream()));
  10.                 BufferedWriter ddd=new BufferedWriter(new OutputStreamWriter(o.getOutputStream()));
  11.                 String line=d.readLine();
  12.                
  13.                         ddd.write(line);
  14.                         
  15.                 o.close();
  16.                 //d.close();
  17.                 //dd.close();
  18.                 //ddd.close();
  19.                 }
  20.         }[code]import java.io.*;
  21. import java.net.*;
  22. public class Server{
  23.         public static void main(String [] args)throws Exception{
  24.                 ServerSocket s=new ServerSocket(7777);
  25.                 Socket o=s.accept();
  26.                 InputStream k=o.getInputStream();
  27.                 OutputStream k1=o.getOutputStream();
  28.                 BufferedReader dd=new BufferedReader(new InputStreamReader(o.getInputStream()));
  29.                 BufferedWriter ddd=new BufferedWriter(new OutputStreamWriter(o.getOutputStream()));
  30.                 String line=null;
  31.             
  32.                 line=dd.readLine();
  33.                 System.out.println(line);
  34.                 o.close();
  35.         //        kk.close();
  36.                 //kkk.close();
  37.                 }
  38.         }
复制代码
[/code]


这个程序从客户端输入一串字符,在服务端总是打印null出来,这是为什么

8 个回复

倒序浏览
这是那一章节的内容啊
回复 使用道具 举报
char[] =new char[1024]这句没有带变量,这句对了也没用,BufferedWriter 和BufferedReader本来就有带缓冲区了。
回复 使用道具 举报
还有就是你对流的定义不清晰,一些流定义了没用到,而且字符流readline之后要flush
回复 使用道具 举报
dd要嘛要flush,要嘛就要close,你这样只是把数据存在缓冲区了,没读出来
回复 使用道具 举报
求解答

dd.jpg (24.12 KB, 下载次数: 7)

加了flush,编译出现这样的错误,求完整的代码

加了flush,编译出现这样的错误,求完整的代码
回复 使用道具 举报
龙健 中级黑马 2014-6-23 16:19:10
7#
明显的没有刷新缓冲区,读取键盘输入的时候,读到的字符存入缓冲区中,你这里没有刷新缓冲区,也没有关闭缓冲区,缓冲区里的数据不会跑到输出流中,除非缓冲区“满”了,试试刷新或者关闭
回复 使用道具 举报
师偃 中级黑马 2014-6-23 16:56:49
8#
写入流用flush()~
回复 使用道具 举报
怎样把上面两个文件,写myeclipse中,并运行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马