Java初学者-套接字连接被拒绝的问题

Java初学者-套接字连接被拒绝的问题,java,multithreading,sockets,connection,connection-refused,Java,Multithreading,Sockets,Connection,Connection Refused,我是一个完全的初学者,我的任务是在使用线程的同时发送一些东西到服务器并取回。 我的问题是,无论我使用哪个端口,我都会被拒绝连接。 我认为这可能与线程有关,但我不确定如何处理它们,因为两者似乎都正确启动,而客户端是引发异常的那个。我在某个地方读到,服务器应该有一些时间来启动连接,所以我把睡眠,但同样的事情再次 主要内容: 服务器: package advancedjavaassignment1; import java.net.*; import java.io.DataInputStream;

我是一个完全的初学者,我的任务是在使用线程的同时发送一些东西到服务器并取回。 我的问题是,无论我使用哪个端口,我都会被拒绝连接。 我认为这可能与线程有关,但我不确定如何处理它们,因为两者似乎都正确启动,而客户端是引发异常的那个。我在某个地方读到,服务器应该有一些时间来启动连接,所以我把睡眠,但同样的事情再次

主要内容:

服务器:

package advancedjavaassignment1;
import java.net.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class SERVER {
    static void mainServer()    {
        serverTHREAD serverThread = new serverTHREAD();
        serverThread.start();
        try (
            ServerSocket calcServer = new ServerSocket(10001); //Server created on port 2390
            Socket inSocket = calcServer.accept(); //Server is listening
            DataInputStream FromClient = new DataInputStream(inSocket.getInputStream());
            DataOutputStream ToClient = new DataOutputStream(inSocket.getOutputStream());)    {
            int a = FromClient.readInt();
            ToClient.writeInt(a);
        }
        catch (IOException e) {
            System.out.println(e.getMessage()+ "Server");
            
        } 
        }
    }
}
客户:

package advancedjavaassignment1;
import java.net.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class CLIENT {
    static void mainClient()   {
        serverTHREAD clientThread = new serverTHREAD();
        clientThread.start();
        try {Thread.sleep(2000); System.out.println("break");} catch (InterruptedException ex) { }                
        try (Socket ClientSocket = new Socket("localhost",80);
            DataInputStream FromServer = new DataInputStream(ClientSocket.getInputStream());
            DataOutputStream ToServer = new DataOutputStream(ClientSocket.getOutputStream());) {
            ToServer.writeInt(10);
            int sum = FromServer.readInt();
            System.out.println(sum);
            ClientSocket.close();
        }
        catch(IOException exception)
        {
            System.out.println(exception.getMessage() + " - Client");
        }
    }
}

看起来您的服务器运行在端口10001上(尽管您在注释中写了2390),客户端尝试连接到端口80。客户端没有发现服务器在侦听该端口,因此出现连接被拒绝错误。

抱歉,我忘了更改它,因为我正在尝试所有操作,即使端口相同,这也不起作用


我通过实现Runnable解决了这个问题。立即工作。

您是否正在创建一个侦听端口10001的服务器,并希望连接端口80的客户端不会被拒绝连接?您好@ernest_k,我复制了我尝试的代码,但即使在放置相同的端口时,它仍然不起作用。非常感谢您的帮助。另外,是否可以将此整数简单地转发到服务器并返回?
package advancedjavaassignment1;
import java.net.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class CLIENT {
    static void mainClient()   {
        serverTHREAD clientThread = new serverTHREAD();
        clientThread.start();
        try {Thread.sleep(2000); System.out.println("break");} catch (InterruptedException ex) { }                
        try (Socket ClientSocket = new Socket("localhost",80);
            DataInputStream FromServer = new DataInputStream(ClientSocket.getInputStream());
            DataOutputStream ToServer = new DataOutputStream(ClientSocket.getOutputStream());) {
            ToServer.writeInt(10);
            int sum = FromServer.readInt();
            System.out.println(sum);
            ClientSocket.close();
        }
        catch(IOException exception)
        {
            System.out.println(exception.getMessage() + " - Client");
        }
    }
}