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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mk7 中级黑马   /  2013-6-12 17:07  /  1507 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 mk7 于 2013-6-13 20:25 编辑
  1. //指定服务端主机和端口
  2. Socket socket = new Socket("127.0.0.1", 10017);

  3. //指定所要上传文件的目录
  4. FileInputStream fis = new FileInputStream("f:\\1.mp3");
  5. OutputStream os = socket.getOutputStream();

  6. //上传文件
  7. byte[] buf = new byte[1024];
  8. int len = 0;
  9. while((len=fis.read(buf))!=-1)
  10. os.write(buf);

  11. //关闭输出流
  12. socket.shutdownOutput();

  13. //读取并打印服务端的反馈信息
  14. InputStream in = socket.getInputStream();
  15. len = in.read(buf);
  16. System.out.println(new String(buf, 0, len));
复制代码
以上是客户端上传文件的一段代码,文件上传完成后使用了shutdownOutput()方法关闭输出流,接着读取服务端的反馈信息。
如果读取完服务端反馈信息后想要再向服务端发送一段信息,但是已经关闭了输出流,应该怎么办呢?重新用socket.getOutputStream()
来获取新的输出流行不行?

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 神马都是浮云

查看全部评分

3 个回复

正序浏览
楼主您好!如果问题得到解决请将题目改成"已解决"
编辑文章-->修改 如果问题没有得到解决请继续发问谢谢您的配合{:soso_e100:}
回复 使用道具 举报
想要再向服务端发送一段信息,应再次获取socket流中输出流
OutputStream os2 = socket.getOutputStream();
通过
byte[] buf = new byte[1024];
int len = 0;
while((len=fis.read(buf))!=-1)
os2.write(buf);

上传数据!

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马