客户端/服务器java应用程序中的JVM_Bind错误

时间:2012-11-03 01:05:56

标签: java sockets

我正在尝试构建一个java微博应用程序 我已经完成了代码,但由于以下错误无法连接到我自己的计算机(我谷歌它,有人说我需要更改端口号。我更改了端口号,没有发生任何事情)

Exception in thread "Thread-4" java.net.BindException: Address already in use: JVM_Bind

以下是服务器的代码:

public class server extends Thread {
    public Socket client = null;
    public ServerSocket server = null;
    private int port = 4444; 

public void run(){  
    while (true){ //loop waits for incomming connection
        try { //start the server and listen to a port
                server = new ServerSocket(port);
            }catch (IOException e){
                System.err.println(e);
                System.exit(-1);
            }

            try { //establish a connection when receiving request
                client = server.accept();
            }catch (IOException e){
                System.err.println(e);
                System.exit(1);
            }

            Thread t = new Thread(new Connection(client));
            t.start();
        }
    }
}

这是启动服务器并侦听端口4444的代码

Server server = new Server();
server.start(); //to listen to a port

谢谢

1 个答案:

答案 0 :(得分:1)

您必须在进入循环之前创建ServerSocket。目前你正在尝试每次迭代创建它,这没有意义,你没有关闭它,所以第二次创建失败。