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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马张旭明 中级黑马   /  2012-10-31 22:09  /  1634 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马张旭明 于 2012-10-31 23:02 编辑

public class Client {

public static void main(String[] args)throws Exception {
  Socket s = new Socket(InetAddress.getLocalHost().getHostAddress(),10008);
  
  FileInputStream fis = new FileInputStream("e:\\program\\my.jar");
  
  OutputStream out = s.getOutputStream();
  
  byte[] buf = new byte[1024];
  for(int len=0;(len=fis.read(buf))!=-1;){
   out.write(buf,0,len);
  }
  
  s.shutdownOutput();
  InputStream in = s.getInputStream();
  
  byte[] bufIn = new byte[1024];
  
  int num = in.read(bufIn);
  System.out.println(new String(buf,0,num));
  
  fis.close();
  s.close();
}
}


public class Server {

public static void main(String[] args)throws Exception {
  ServerSocket ss = new ServerSocket(10008);
  
  Socket s = ss.accept();
  
  InputStream in = s.getInputStream();
  
  FileOutputStream fos = new FileOutputStream("e:\\my.jar");
  
  byte[] buf = new byte[1024];
  
  for(int len=0;(len=in.read(buf))!=-1;){
   fos.write(buf, 0, len);
  }
  
  OutputStream out = s.getOutputStream();
  
  out.write("上传成功".getBytes());
  
  fos.close();
  s.close();
  ss.close();
   
}
}


看到网络编程就敲了一下老师的代码,结果输出的不是“上传成功”而是

未命名.jpg (17.65 KB, 下载次数: 16)

未命名.jpg

1 个回复

倒序浏览
你打印的是System.out.println(new String(buf,0,num));
这个变量是你第一次定义的buf 它里面装的是你给服务端发送的数据e:\\program\\my.jar

int num = in.read(bufIn);
System.out.println(new String(buf,0,num));
把打印的buf改成bufIn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马