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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. <div class="blockcode"><blockquote>java.net.ConnectException: Connection refused: connect
  2. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  3.         at java.net.DualStackPlainSocketImpl.connect0(Native Method)
  4.         at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
  5.         at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
  6.         at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
  7.         at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
  8.         at java.net.PlainSocketImpl.connect(Unknown Source)
  9.         at java.net.SocksSocketImpl.connect(Unknown Source)
  10.         at java.net.Socket.connect(Unknown Source)
  11.         at java.net.Socket.connect(Unknown Source)
  12.         at java.net.Socket.<init>(Unknown Source)
  13.         at java.net.Socket.<init>(Unknown Source)
  14.         at 文件传输.main(文件传输.java:11)
  15. Exception in thread "Thread-0" java.lang.NullPointerException
  16.         at 服务端.run(文件传输.java:75)
  17.         at java.lang.Thread.run(Unknown Source)
复制代码

import java.io.*;
import java.net.*;


public class 文件传输 {

        public static void main(String[] args) {
                Socket socket=null;
                ServerSocket ss=null;
                try {
                        socket=new Socket(InetAddress.getByName("127.0.0.1"),10001);
                        ss=new ServerSocket(10001);
                } catch (Exception e) {
                        e.printStackTrace();
                }
                System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
                new Thread(new 服务端(ss)).start();
//                为了让服务端先开启,main线程停10s
                try {
                        Thread.sleep(10000);
                } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                System.out.println("**********************************************************************");
               
                new Thread(new 客户端(socket,"G:\\test\\test.txt")).start();

        }

}

class 客户端 implements Runnable {
        private Socket socket;
        private String path;

        客户端(Socket socket, String path) {
                this.socket = socket;
                this.path=path;
        }

        @Override
        public void run() {
                BufferedInputStream br = null;
                OutputStream os = null;
                try {
                        os = socket.getOutputStream();
                        br = new BufferedInputStream(new FileInputStream(path));
                        byte[] buf = new byte[1024];
                        int len = 0;
                        while ((len = br.read(buf)) != -1) {
                                os.write(buf, 0, len);
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
}

class 服务端 implements Runnable{
        private ServerSocket ss;
        private Socket socket;
       
        服务端(ServerSocket ss){
                this.ss=ss;
        }
       
        @Override
        public void run() {
                // TODO Auto-generated method stub
               
                BufferedInputStream is=null;
                BufferedOutputStream os=null;
                try {
                        socket=ss.accept();
                        is=new BufferedInputStream(socket.getInputStream());
                        os=new BufferedOutputStream(new FileOutputStream("G:\\test\\test1.txt"));
                        byte[] buf=null;
                        int len=0;
                        while((len=is.read(buf))!=-1){
                                os.write(buf, 0, len);
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }               
        }
}


7 个回复

倒序浏览
socket一开始定义为null,那么后面就要try,否则就会报空指针异常
回复 使用道具 举报
如果我没有理解错楼主的意思,你应该是想用套接字实现本地test.txt文件信息传导到test1.txt上?但是楼主,你这里明显是错了,服务端和客户端你需要分开来写,而且你使用的文件传输还把自己定义成了服务器端,然后你有使用了socket套接字定义你想读取得主机和ip地址,你简直是大才!!!
回复 使用道具 举报
看了楼主的贴子瞬间感觉原来socket我还没有学会。
回复 使用道具 举报
殷俊 发表于 2015-4-11 21:13
socket一开始定义为null,那么后面就要try,否则就会报空指针异常

socket都在try里啊
回复 使用道具 举报
看丶小胖 发表于 2015-4-11 21:22
如果我没有理解错楼主的意思,你应该是想用套接字实现本地test.txt文件信息传导到test1.txt上?但是楼主, ...

刚学习,练练手,我知道应该分开写,我不是写了一个延迟么,确保服务端先开启,但是不知道为什么总是连接异常,分开写代码是没有问题的,我测试过了,但是我就是想结合一下多线程而已
回复 使用道具 举报
1021361407 发表于 2015-4-13 23:50
刚学习,练练手,我知道应该分开写,我不是写了一个延迟么,确保服务端先开启,但是不知道为什么总是连接 ...

你这里已经把这个类做成服务端了。。

点评

这是三个类啊,只是写到一个文件里  发表于 2015-4-14 14:55
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马