java.net.ConnectException:TCP套接字中的连接被拒绝了吗?

时间:2014-03-21 04:59:11

标签: java sockets tcp

我创建了一个程序,用于将文件从客户端发送到服务器,但是当我在localhost中运行该文件时,它运行正常,我可以发送文件但是当我将该文件从另一台PC发送到我的PC时,它显示&# 34; java.net.ConnectException:拒绝连接"。

两侧的端口号相同,防火墙也关闭。当连接服务器套接字的客户端请求也接受套接字时,甚至端口正在侦听。

提前谢谢

我的程序代码是:

public class ProgramSocket {

    public ProgramSocket(ServerSocket servsock) throws IOException {

        System.out.print("server started");
        while (true) {
            final Socket sock;
            try {
                sock = servsock.accept();
            } catch (SocketException e) {
                break;
            }
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        connectToNewClient(sock);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
        }

        System.out.print("server stopped");

    }

    void connectToNewClient(Socket sock) throws IOException,
    InterruptedException {


        FileOutputStream fos = new FileOutputStream("C:/abc.txt");

        BufferedOutputStream bos = new BufferedOutputStream(fos);
        int bytesRead = is.read(mybytearray, 0, mybytearray.length);
        bos.write(mybytearray, 0, bytesRead);
        bos.close();


        sock.close();
    }
}

客户方:

public String uploadFile(String filePath) throws Exception {
    Socket sock = new Socket(ip, 24999);

    // select file
    File myFile = new File(filePath);


    // send the program file
    byte[] mybytearray = new byte[(int) myFile.length()];
    BufferedInputStream bis = new BufferedInputStream(
    new FileInputStream(myFile));
    OutputStream os = sock.getOutputStream();
    bis.read(mybytearray, 0, mybytearray.length);
    os = sock.getOutputStream();
    os.write(mybytearray, 0, mybytearray.length);
    os.flush();
    bis.close();

    sock.close();

    return message;

}

为了简洁省略了一些代码。

0 个答案:

没有答案