Linux - 报错“Address already in use”解决方案

报"Address already in use",如下图所示:

错误原因:某程序正在使用端口。(这里我使用的是端口“8888”)

可以通过命令查看所有正在使用的端口:

netstat -tunllp

 

解决方案1

1.找到占用该端口的进程号

使用命令:

sudo netstat -anp|grep "8888" (端口号)

可以看到进程号为 8888 的 server_thread 进程正在使用它,进程id为:100188

 

2.终止该进程

使用命令:

kill -9 100188(进程号)

 

 

解决方案2

使用setsocketopt()函数,设置端口复用。

    //设置端口复用
    int opt = 1;
    if(setsockopt(fd,SOL_SOCKET,SO_REUSEPORT | SO_REUSEADDR, &opt, sizeof(opt)))
    {
        perror("setsockopt failed!");
    }

 

posted @ 2024-03-15 15:30  [BORUTO]  阅读(2857)  评论(0)    收藏  举报