端口复用
端口复用最常用的用途是:
防止服务器重启时之前绑定的端口还未释放 (2msl)
程序突然退出而系统没有释放端口
查看网络相关信息的命令
netstat
参数:
-a 所有的socket
-p 显示正在使用的socket的程序名称
-n 直接使用IP地址,而不通过域名服务器




主动断开服务器

然后断开客户端


这是端口就在2msl一直被占用了,用不了了,所以要端口复用。

#include <sys/types.h>
#include <sys/socket.h>
端口复用,就可以解决2msl某个端口一直被占用的问题
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
参数:(unix编程第七章)
-sockfd 要操作的文件描述符
-level 级别- SOL_SOVKET(端口服用级别)
- optname:选项的
- SO_REUSEADDR
- SO_REUSEPORT
- optval 端口复用的值(整形)
-1:可以复用
-0:不可以复用
-optlen:optval参数的大小
端口复用:设置的时机是在服务器绑定端口之前设置端口复用
setsockopt()
bind()
本文介绍了端口复用的基本概念及其实现方法,探讨了如何通过设置SO_REUSEADDR和SO_REUSEPORT选项来解决2MSL期间端口被占用的问题,并提供了具体的C语言代码示例。
3310

被折叠的 条评论
为什么被折叠?



