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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨剑 中级黑马   /  2013-3-5 12:04  /  1734 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
import java.net.*;
class PicClient{
public static void main(String[] args) throws Exception{
  Socket s = new Socket("192.168.1.121",10001);
  FileInputStream fis = new FileInputStream("f:\\chat.png");
  byte[] buf = new byte[1024];
  int len = 0;
  OutputStream os = s.getOutputStream();
  while((len=fis.read(buf))!=-1){
   os.write(buf,0,len);
  }
  s.shutdownInput();
  InputStream is = s.getInputStream();
  byte[] bufIn = new byte[1024];
  int len2 = is.read(bufIn);
  System.out.println(new String(bufIn,0,len2));
  fis.close();
  os.close();
  is.close();
}
}
class PicServer{
public static void main(String[] args)throws Exception{
  ServerSocket ss = new ServerSocket(10001);
  Socket s = ss.accept();
  InputStream is = s.getInputStream();
  byte[] buf = new byte[1024];
  FileOutputStream fos = new FileOutputStream("2.jpg");
  int len = 0;
  while((len=is.read(buf))!=-1){
   fos.write(buf,0,len);
  }
  PrintWriter pw = new PrintWriter(s.getOutputStream());
  pw.println("上传成功".getBytes());
  is.close();
  fos.close();
  pw.close();
}
}
上传图片的时候遇到这个问题,不知道怎么回事

wenti.png (35.01 KB, 下载次数: 13)

wenti.png

评分

参与人数 1黑马币 +9 收起 理由
黄玉昆 + 9 鼓励鼓励

查看全部评分

2 个回复

倒序浏览
在第13行应该关闭输出流,而非输入流s.shutdownOutput();
第34行PrintWriter pw = new PrintWriter(s.getOutputStream());打印流可以自动刷新,但要多输入一个参数
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
打印流可以直接打印的 pw.println("上传成功".getBytes());
去掉.getBytes()
回复 使用道具 举报
我知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马