我在我的Ubuntu 11上用C++开发了一个模拟器程序,当我想从Linux进程列表中杀死这个进程时,想再次运行它,我面对这个错误:
Error initializing sockets: port=6000. Address already in use
我使用lsof命令查找进程的PID:
saman@jack:~$ lsof -i:6000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rcssserve 8764 saman 3u IPv4 81762 0t0 UDP *:x11
之后我试图杀死8764的PID。但还是有错误。
我怎样才能修好它?
最佳答案
我认为您遇到的问题是,如果套接字没有正确关闭,那么它仍然保留并等待内核关闭超时。
尝试执行netstat -nutap
并查看是否有这样的行:
tcp 0 0 AAA.AAA.AAA.AAA:6000 XXX.XXX.XXX.XXX:YYYY TIME_WAIT -
如果是这样的话,你只需要等到内核掉下来(大约30秒),直到你可以在6000打开插座而不发生冲突
关于linux - 初始化套接字时出错:端口= 6000。地址已被使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10289739/