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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马伍仪华 中级黑马   /  2012-3-22 08:41  /  1590 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package day23_07;
import java.net.*;

import java.io.*;
//1.创建服务 2.获取服务端输出流 3读取输出流,写进文件 4.打印上传信息
public class reciever {

        /**
         * @param args
         */
        public static void main(String[] args) throws Exception{
                ServerSocket ss=new ServerSocket(10005);
                Socket s=ss.accept();
               
                FileOutputStream fo=new FileOutputStream("c:\\2.gif");
                OutputStream out=s.getOutputStream();
                InputStream in=s.getInputStream();
                int len=0;
                while((len=in.read())!=-1){
                        fo.write(len);
                        fo.flush();
                       
                }
                System.out.println("上传完毕");

        }

}


public class Sender {

        /**
         * 思路:创建服务 1.创建文件 2.写文件 3.传输出去 4获取文件返回的信息
         */
        public static void main(String[] args)throws Exception {
       
                Socket s=new Socket("127.0.0.1",10005);
                OutputStream a=s.getOutputStream();
                FileOutputStream output=new FileOutputStream("c:\\1.gif");
                FileInputStream input=new FileInputStream("c:\\1.gif");
                byte[] shuzu=new byte[1024*1024];
               
                while(input.read(shuzu)!=-1){
                        a.write(shuzu);
                        a.flush();
                }
       
        System.out.println("上传成功");       
        }
}
这是我写的两个类,为什么显示连接错误?

2 个回复

倒序浏览
首先你的这个有两个错误,第一个这里 客户端 while(input.read(shuzu)!=-1)这里不应该这样写,还有客户端  FileOutputStream output=new FileOutputStream("c:\\1.gif");这句是多余的。这都不是重要的 。你的问题是出在你发送完毕没有关闭socket造成的。下面我贴上我修改后的代码
class reciever {

        /**
          * @param args
          */
         public static void main(String[] args) throws Exception{
                 ServerSocket ss=new ServerSocket(10007);
                 Socket s=ss.accept();
                 
                FileOutputStream fo=new FileOutputStream("1111.jpg");
                 OutputStream out=s.getOutputStream();
                 InputStream in=s.getInputStream();
                 int len=0;
                 while((len=in.read())!=-1){
                         fo.write(len);     
                  }
                 System.out.println("上传完毕");
                                s.close();
        }

}


class Sender {

        /**
          * 思路:创建服务 1.创建文件 2.写文件 3.传输出去 4获取文件返回的信息
          */
         public static void main(String[] args)throws Exception {
         
                Socket s=new Socket("127.0.0.1",10007);
                 OutputStream a=s.getOutputStream();
                 FileInputStream input=new FileInputStream("11.jpg");
                 byte[] shuzu=new byte[1024*1024];
                 int len = 0;
                while((len = input.read(shuzu))!=-1){
                         a.write(shuzu,0,len);
                 }
                                 s.close();
         
                                System.out.println("上传成功");        
                                }
}
回复 使用道具 举报
技术真好。。。。谢谢奥
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马