linux socket 程序被ctrl+c或者异常终止,再次起程序时提示该端口号已被绑定,是以为之前的socket端口没有被正常释放。
所以需要 在bind之前,对setsocketopt做一些设置。
在bind之前,添加以下处理即可:
int mw_optval = 1;
setsockopt(server_sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&mw_optval,sizeof(mw_optval));
或者过段时间,重启都可以解决,但是以上的处理肯定是更加科学。
参考:https://blog.csdn.net/matthew0618band/article/details/42123123