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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不似侽紸角. 于 2014-4-17 21:15 编辑
  1. import java.io.*;
  2. import java.net.*;
  3. class PicClient
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 Socket s =new Socket("127.0.0.1",8008);
  8.                 FileInputStream fis =new FileInputStream("c:\\mingren.jpg");
  9.                 OutputStream out = s.getOutputStream();
  10.                 byte [] buf =new byte[1024];

  11.                 int len =0;
  12.                 while((len=fis.read(buf))!=-1);
  13.                 {
  14.                         out.write(buf,0,len);
  15.                 }
  16.                 s.shutdownOutput();
  17.                 InputStream in =s.getInputStream();
  18.                 byte[] bufIn=new byte[1024];
  19.                 int num =in.read(bufIn);
  20.                 System.out.println(new String(bufIn,0,num));
  21.                 fis.close();
  22.                 s.close();
  23. }
  24. }
  25. class PicServer
  26. {
  27.         public static void main(String[] args) throws Exception
  28.         {
  29.                 ServerSocket ss =new ServerSocket(8008);
  30.                 Socket s =ss.accept();
  31.                 InputStream in= s.getInputStream();
  32.                 FileOutputStream fos =new FileOutputStream("server.jpg");
  33.                 byte [] buf =new byte [1024];
  34.                 int len =0;
  35.                 while((len=in.read(buf))!=-1);
  36.                 {
  37.                         fos.write(buf,0,len);
  38.                 }
  39.                 OutputStream out =s.getOutputStream();
  40.                 out.write("上传成功".getBytes());
  41.                 fos.close();
  42.                 s.close();
  43.                 ss.close();

  44.         }
  45. }
复制代码

大家帮忙看看

8 个回复

倒序浏览

  1. import java.io.*;
  2. import java.net.*;
  3. class  PicClient
  4. {
  5.         public static void main(String[] args)throws Exception
  6.         {
  7.                 Socket s = new Socket("192.168.100.3",10007);

  8.                 FileInputStream fis = new FileInputStream("1.gif");

  9.                 OutputStream out = s.getOutputStream();

  10.                 byte[] buf = new byte[1024];

  11.                 int len = 0;

  12.                 while((len=fis.read(buf))!=-1)
  13.                 {
  14.                         out.write(buf,0,len);
  15.                 }

  16.                 //告诉服务端数据已写完
  17.                 s.shutdownOutput();

  18.                 InputStream in = s.getInputStream();

  19.                 byte[] bufIn = new byte[1024];

  20.                 int num = in.read(bufIn);
  21.                 System.out.println(new String(bufIn,0,num));

  22.                 fis.close();
  23.                 s.close();
  24.         }
  25. }

  26. /*
  27. 服务端
  28. */
  29. class  Demo1
  30. {
  31.         public static void main(String[] args) throws Exception
  32.         {
  33.                 ServerSocket ss = new ServerSocket(10007);

  34.                 Socket s = ss.accept();

  35.                 InputStream in = s.getInputStream();

  36.                 FileOutputStream fos = new FileOutputStream("server.gif");

  37.                 byte[] buf = new byte[1024];

  38.                 int len = 0;
  39.                 while((len=in.read(buf))!=-1)
  40.                 {
  41.                         fos.write(buf,0,len);
  42.                 }

  43.                 OutputStream out = s.getOutputStream();

  44.                 out.write("上传成功".getBytes());

  45.                 fos.close();

  46.                 s.close();

  47.                 ss.close();
  48.         }
  49. }
复制代码


这个可以

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报

嗯,我想找到我的错误的地方啊
回复 使用道具 举报
  while((len=fis.read(buf))!=-1);               {
                      
                      System.out.println(len);
                       //out.write(buf,0,len);

                }
你是不是故意的,while()和语句体中间插入封号。。。给个技术分吧,弄了半天。
回复 使用道具 举报
TTc 发表于 2014-4-17 21:07
while((len=fis.read(buf))!=-1);               {
                      
                      System.out. ...

想不到竟然搞这么低级错误..     我想半天没明白
回复 使用道具 举报
TTc 发表于 2014-4-17 21:07
while((len=fis.read(buf))!=-1);               {
                      
                      System.out. ...

真不是故意的,手贱了。。。技术分我很穷的,版主会给你的....
回复 使用道具 举报
ノtrack 发表于 2014-4-17 21:08
想不到竟然搞这么低级错误..     我想半天没明白

结果,总是让我想去屎!
回复 使用道具 举报
大哥,你在PicClient和PicServer这两个类中的while后面加了个括号啊,我也找了半天才发现这个问题,下面是修改过的
  1. import java.io.*;

  2. import java.net.*;


  3. public class text3 {
  4.         public static void main(String[] args) throws Exception

  5.     {

  6.             Socket s =new Socket("127.0.0.1",9855);

  7.             FileInputStream fis =new FileInputStream("C:\\1.jpg");

  8.             OutputStream out = s.getOutputStream();

  9.             byte [] buf =new byte[1024*1024];

  10.             int len =0;

  11.             while((len=fis.read(buf))!=-1)

  12.             {

  13.                     out.write(buf,0,len);

  14.             }

  15.             s.shutdownOutput();

  16.             InputStream in =s.getInputStream();

  17.             byte[] bufIn=new byte[1024*1024];

  18.             int num =in.read(bufIn);

  19.             System.out.println(new String(bufIn,0,num));

  20.             fis.close();

  21.             s.close();

  22. }

  23. }

  24. class PicServer

  25. {

  26.     public static void main(String[] args) throws Exception

  27.     {

  28.             ServerSocket ss =new ServerSocket(9855);

  29.             Socket s =ss.accept();

  30.             InputStream in= s.getInputStream();

  31.             FileOutputStream fos =new FileOutputStream("D:\\server.jpg");

  32.             byte [] buf =new byte [1024*1024];

  33.             int len =0;

  34.             while((len=in.read(buf))!=-1)

  35.             {

  36.                     fos.write(buf,0,len);

  37.             }

  38.             OutputStream out =s.getOutputStream();

  39.             out.write("上传成功".getBytes());

  40.             fos.close();

  41.             s.close();

  42.             ss.close();



  43.     }


  44. }
复制代码
回复 使用道具 举报
TTc 中级黑马 2014-4-17 23:36:23
9#
不似侽紸角. 发表于 2014-4-17 21:16
结果,总是让我想去屎!

额,我就是期盼版主给咱加技术分,你也不富裕。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马