java - BindException 多线程服务器

标签 java multithreading sockets exception binding

我有 3 个服务器,我在这些服务器中运行以下代码。然而其中之一给出了错误:

Exception in thread "main" java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
    at java.net.ServerSocket.bind(Unknown Source)
    at java.net.ServerSocket.<init>(Unknown Source)
    at java.net.ServerSocket.<init>(Unknown Source)
    at MultiThreadServer.main(MultiThreadServer.java:22)

即使我使用命令“ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs Kill -9”停止运行程序,它仍然给出相同的异常。 代码如下:

public class MultiThreadServer implements Runnable {
Socket csocket;
MultiThreadServer(Socket csocket) {
    this.csocket = csocket;
}

public static void main(String args[]) 
        throws Exception {
    ServerSocket ssock = new ServerSocket(8879);
    System.out.println("Listening");
    while (true) {
        Socket sock = ssock.accept();
        System.out.println("Connected");
        new Thread(new MultiThreadServer(sock)).start();
    }

}
public void run() {..}

最佳答案

该端口可能已被使用。尝试使用不同的端口。

关于java - BindException 多线程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21962529/

相关文章:

java - 为什么 ((ans != 'N' ) || (ans != 'Y' )) 总是正确的?

java - 如何缩放从 PNG 加载的透明 org.eclipse.swt.graphics.Image; java

java - 在 Java 中使用 'printf'

c - 在多线程程序中在哪里定义互斥锁,有什么区别

c - 在 TCP/IP 聊天程序中无法工作

java - 马文 : Does project inheritance or aggregation better support this scenario?

c++ - 在单独的线程中正确使用 Boost::asio

c# - C# 中的多线程与 Win.Forms 控件

c# - 从套接字读取传入数据?

java - 当我删除对它的所有引用时,阻塞在 accept() 中的 ServerSocket 实例会发生什么情况?