Closed Tsubaki-01 closed 2 months ago
根据你的截图来判断,你通过 Ctrl-Z
来停止了 server 进程。但是 Ctrl-Z
是“停止”进程(向进程发送 SIGSTOP
信号),而不是“关闭”进程。被停止的进程应该还是占用着相应的端口,所以你再次开启一个 server 进程时,会显示端口被占用。
在 ubuntu 22.04 上,可以使用 iproute2 软件包提供的 ss
命令来列出 tcp socket 的信息。
ss -tnl
# sudo ss -tnlp
根据你的截图来判断,你通过
Ctrl-Z
来停止了 server 进程。但是Ctrl-Z
是“停止”进程(向进程发送SIGSTOP
信号),而不是“关闭”进程。被停止的进程应该还是占用着相应的端口,所以你再次开启一个 server 进程时,会显示端口被占用。在 ubuntu 22.04 上,可以使用 iproute2 软件包提供的
ss
命令来列出 tcp socket 的信息。ss -tnl # sudo ss -tnlp
是的了🤣 使用ctl+c是直接终止进程,ctl+z是挂起进程。 谢谢你
ubuntu 16.04下该项目和ubuntu 22.04下本人学习的项目都遇到这个问题,查询资料后发现这个函数是有正确设置成了SOREUSEADDR setsockopt(listenFd, SOL_SOCKET, SO_REUSEADDR, (const void*)&optval, sizeof(int)); 但是问题并没有解决,下面是出错的日志和终端图片
![QQ截图20240613162756](https://github.com/markparticle/WebServer/assets/92919224/abfeb264-e41b-422c-a435-81617850e165)