Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.net.ConnectException:TCP套接字中的连接被拒绝?_Java_Sockets_Tcp - Fatal编程技术网

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

java.net.ConnectException:TCP套接字中的连接被拒绝?,java,sockets,tcp,Java,Sockets,Tcp,我创建了一个程序,用于将文件从客户端发送到服务器,但当我在localhost中运行该文件时,效果良好,我可以发送该文件,但当我将该文件从另一台电脑发送到我的电脑时,会显示“java.net.ConnectException:连接被拒绝” 两侧的端口号相同,防火墙也关闭。当连接服务器套接字的客户端请求也接受套接字时,即使端口也在侦听 先谢谢你 我的程序代码是: public class ProgramSocket { public ProgramSocket(ServerSocket s

我创建了一个程序,用于将文件从客户端发送到服务器,但当我在localhost中运行该文件时,效果良好,我可以发送该文件,但当我将该文件从另一台电脑发送到我的电脑时,会显示“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;

}

为了简洁起见,省略了一些代码。

这里唯一的问题是您是否在客户端使用了正确的IP地址和端口号,并且只有您知道。很可能,他在服务器中使用了错误的IP地址。您能出示端口正在侦听的证据吗?我正在使用正确的ip连接其他PC,并且连接也已建立,但当我尝试发送文件时,它会显示连接被拒绝,您完全可以确认服务器上的任何软件入站防火墙已关闭,客户端上的任何软件出站防火墙已关闭,他们之间没有任何类型的防火墙?我已经关闭了@JasonC两侧的防火墙