设置一个简单的服务器/客户端,获取;java.net.ConnectException:连接被拒绝:connect";

设置一个简单的服务器/客户端,获取;java.net.ConnectException:连接被拒绝:connect";,java,sockets,serversocket,connectexception,Java,Sockets,Serversocket,Connectexception,我正在努力设置我的第一个服务器/客户端连接。我的GUI有一个对话框。按下其中的发送按钮后,我调用client.connect()。 它第一次工作,但当我继续并重新打开对话框(按下Send后它会自动关闭)并再次尝试执行相同操作时,我将收到“connection Rejected”(连接被拒绝)错误。我怀疑这是由于服务器仍连接到原始套接字,并且按钮事件再次触发client.connect()。(将尝试连接一个新的)。但我不知道怎样才能确保这不会发生。对话框关闭后,我必须关闭客户端套接字,对吗?我如何

我正在努力设置我的第一个服务器/客户端连接。我的GUI有一个对话框。按下其中的发送按钮后,我调用
client.connect()。

它第一次工作,但当我继续并重新打开对话框(按下Send后它会自动关闭)并再次尝试执行相同操作时,我将收到“connection Rejected”(连接被拒绝)错误。我怀疑这是由于服务器仍连接到原始套接字,并且按钮事件再次触发
client.connect()
。(将尝试连接一个新的)。但我不知道怎样才能确保这不会发生。对话框关闭后,我必须关闭客户端套接字,对吗?我如何实现这一点?还是问题出在别的地方?这只是一个感觉有点正确的猜测

这是我的
客户机
类(它包括上面调用的
connect()
方法):

这是我的
服务器
课程:

public class Server
{
    public static void main(String[] args) throws UnknownHostException, IOException
    {
        ServerSocket server = new ServerSocket (3000);
        Socket s = server.accept();
        System.out.println("Connected");
        BufferedReader dis = new BufferedReader(new InputStreamReader(s.getInputStream()));
        System.out.println(dis.readLine());
    }
}

请注意,这是我第一次用java设置服务器/客户机,因此本地主机需要尝试,这可能是一个明显的问题。

服务器只接受一个连接并读取一行,然后退出。你需要一个循环。您还需要阅读Java教程中的“自定义网络”部分,我将对此进行深入研究。谢谢你的指导!
public class Server
{
    public static void main(String[] args) throws UnknownHostException, IOException
    {
        ServerSocket server = new ServerSocket (3000);
        Socket s = server.accept();
        System.out.println("Connected");
        BufferedReader dis = new BufferedReader(new InputStreamReader(s.getInputStream()));
        System.out.println(dis.readLine());
    }
}