设置SO_REUSEADDR选项,对应TCP套接字处于TIME_WAIT状态下的socket可以重复绑定实用,看代码吧。

服务端:

#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <malloc.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <stdarg.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <signal.h>
#define MAXLINE 4096int main()
{int listenfd,acceptfd,n;socklen_t  clilen;char recvbuf[100]={0};struct sockaddr_in cliaddr,servaddr;listenfd=socket(AF_INET,SOCK_STREAM,0);servaddr.sin_family=AF_INET;servaddr.sin_port=htons(8888);servaddr.sin_addr.s_addr = INADDR_ANY; int iOpt = 1;setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &iOpt, sizeof(iOpt));bind(listenfd,(struct sockaddr *)&servaddr,sizeof(struct sockaddr_in));listen(listenfd,5);clilen=sizeof(cliaddr);acceptfd=accept(listenfd,(struct sockaddr *)&cliaddr,&clilen);getchar();close(acceptfd);close(listenfd);return 0;
}

客户端:

#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <malloc.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <stdarg.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <signal.h>
#include <netinet/tcp.h>
#define MAXLINE 4096int main()
{int sockfd,ret;struct sockaddr_in servaddr;char sendbuf[1000]={0};sockfd=socket(AF_INET,SOCK_STREAM,0);bzero(&servaddr,sizeof(servaddr));servaddr.sin_family=AF_INET;servaddr.sin_port=htons(8888);servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");ret=connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));printf("ret=%d\n",ret);getchar();close(sockfd);return 0;
}

编译,先启动服务端,再启动客户端。然后先关闭服务端,再关闭客户端,让服务端处理TIME_WAIT状态。

[mapan@localhost ~]$ netstat -na | grep 8888
tcp        0      0 127.0.0.1:8888              127.0.0.1:49222             TIME_WAIT 

此时,在启动服务端,启动客户端,可以看到connect函数成功返回。如果没有设置SO_REUSEADDR选项,则connect函数会返回-1,不信可以试试。

[mapan@localhost test]$ ./client
ret=0

看,客户端返回成功了,很简单,测试一下就知道了。

实战测试SO_REUSEADDR选项相关推荐

  1. Python量化交易+网格技术分析及实战测试

    主要目标 使用Python爬取股票数据 数据清洗并上传至HDFS 使用PyHive对股票数据进行分析 Python数据分析-量化交易 股票量化交易分析 使用Python爬取股票数据 我们这次的目标地址 ...

  2. Jenkins 之 单节点 对接GitHub搭建自动化部署项目环境 与 实战测试 (三)

    Jenkins 之 单节点 对接GitHub搭建自动化部署项目环境 与 实战测试 (三) 目录 Jenkins 之 单节点 搭建自动化部署项目环境 与 实战测试 (三) Jenkins 服务器 环境 ...

  3. Android 系统(212)---monkey实战–测试步骤、常用参数、常规monkey命令

    monkey实战–测试步骤.常用参数.常规monkey命令 [转]monkey实战–测试步骤.常用参数.常规monkey命令 ***(本文转自:https://blog.csdn.net/u01164 ...

  4. 微信公众账号第三方平台全网发布源码(java)- 实战测试通过

    微信公众账号第三方平台全网发布源码(java)- 实战测试通过 (更多资料,关注论坛:www.jeecg.org) 技术交流请加:289709451.287090836 package org.jee ...

  5. 150.网络安全渗透测试—[Cobalt Strike系列]—[DNS Beacon原理/实战测试]

    我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!!! 文章目录 一.DNS Beacon原理 1.DNS Beacon简介 2.DSN Beacon工作原理 二.DNS Bea ...

  6. FLIR高端热像仪T640实战测试

    FLIR高端热像仪T640实战测试 在8楼办公室,俯瞰莲花路上的车流,如一道道彩虹,闪耀着宽阔的马路. 为确保设备可靠运行,您需要可靠的故障排除工具,以帮助您快速查找并报告问题.这正是FLIR红外热像 ...

  7. [NLP]基于IMDB影评情感分析之BERT实战-测试集上92.24%

    系列文章目录 深度学习NLP(一)之Attention Model; 深度学习NLP(二)之Self-attention, Muti-attention和Transformer; 深度学习NLP(三) ...

  8. 刨根问底:MySQL索引篇之千万级数据实战测试

    今天中午我这边只有半个小时时间,再过半个小时,得带着孩子去我妈那吃饭,就拿我给学生讲的案例,给大家直入主题讲一下吧- MySQL索引创建 先说明一个问题啊,如果你创建数据表时创建了主键,此时主键列会自 ...

  9. AI软件写作实战测试:写作技巧 - 让智能写作助手变得更加智能化?

    最近测试了一些AI软件,市面上很多分列各种AI软件的推荐,但是对于AI软件写作的一些技巧,比较缺乏分析和总结.本文尝试从自身实践出发,分享个人的一些感受.具体写效果可以查看如下视频: AI智能写作软件 ...

最新文章

  1. ubuntu+php+mysql+apache安装配置
  2. 32位处理器的寄存器介绍
  3. java 对象转json,java首字母小写,判断方法是否为javabean方法
  4. android语法帮助手册_新 App 「捧读:日语语法学习与分析」的开发幕后思考
  5. HTML 页面源代码布局介绍
  6. Python 第三方库之 Celery 分布式任务队列
  7. 曲线相似度衡量——曲线距离计算Fréchet distance详解与python计算
  8. 初探下一代SIEM核心技术发展趋势
  9. java mb单位转换_Java计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换)
  10. Java 系列之spring学习--springmvc注解参数传递(六)
  11. 线性反馈移位寄存器 LFSR
  12. python读取excel中数据绘制柱状图_Python的Excel操作及数据可视化
  13. 5G无线关键技术 — 低时延高可靠物联网设计
  14. 基于Cohesie单元的二维水力压裂
  15. RRD_rrd4j的使用说明
  16. 打开Excel2010时提示错误:向程序发送命令时出现问题!
  17. LSTM多输入时间序列预测之股价预测
  18. U盘文件丢失选择什么数据恢复软件好
  19. 闲聊HTML5的新特性
  20. 3月面试字节一面就被刷,9月二战字节终于上岸,准备了小半年,这我要个28K应该也不过分吧?

热门文章

  1. Windows 8各个版本的功能详解与对比【中文详表】
  2. Servlet组件之一——Filter过滤器
  3. 安装nginx+ngx_lua支持WAF防护功能
  4. 第12天续,CSS基础
  5. ASP.NET 系统对象 Request(一)
  6. Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
  7. Excel2003Training(1)-浅谈Excel的5个小技巧
  8. 【python初识】数据和对象
  9. nginx负载均衡高可用
  10. MarkDown写blog(测试)