当前位置: 首页 > wzjs >正文

怎么免费做一个网站网页升级访问紧急通知

怎么免费做一个网站,网页升级访问紧急通知,在线简历免费制作网站,十大财务软件排名文章目录 2.4 TCP/UDP对比2.4.1 用UDP实现可靠传输(经典面试题) 2.5 TCP 相关实验2.5.1 理解 listen 的第二个参数 2.4 TCP/UDP对比 我们说了TCP是可靠连接, 那么是不是TCP一定就优于UDP呢? TCP和UDP之间的优点和缺点, 不能简单, 绝对的进行比较TCP用于可靠传输的情况, 应用于…

文章目录

    • 2.4 TCP/UDP对比
      • 2.4.1 用UDP实现可靠传输(经典面试题)
    • 2.5 TCP 相关实验
      • 2.5.1 理解 listen 的第二个参数


2.4 TCP/UDP对比

  • 我们说了TCP是可靠连接, 那么是不是TCP一定就优于UDP呢? TCP和UDP之间的优点和缺点, 不能简单, 绝对的进行比较
  • TCP用于可靠传输的情况, 应用于文件传输, 重要状态更新等场景;
  • UDP用于对高速传输和实时性要求较高的通信领域, 例如, 早期的QQ, 视频传输等. 另外UDP可以用于广播;
  • 归根结底, TCP和UDP都是程序员的工具, 什么时机用, 具体怎么用, 还是要根据具体的需求场景去判定

2.4.1 用UDP实现可靠传输(经典面试题)

参考TCP的可靠性机制, 在应用层实现类似的逻辑;

例如:

  • 引入序列号, 保证数据顺序;
  • 引入确认应答, 确保对端收到了数据;
  • 引入超时重传, 如果隔一段时间没有应答, 就重发数据;

2.5 TCP 相关实验

2.5.1 理解 listen 的第二个参数

基于刚才封装的 TcpSocket 实现以下测试代码

对于服务器, listen 的第二个参数设置为 2, 并且不调用 accept

test_server.cc

#include "tcp_socket.hpp" 
int main(int argc, char* argv[]) {if (argc != 3) {printf("Usage ./test_server [ip] [port]\n");return 1;}TcpSocket sock;bool ret = sock.Bind(argv[1], atoi(argv[2]));if (!ret) {return 1;}ret = sock.Listen(2);if (!ret) {return 1;}// 客户端不进行 acceptwhile (1) {sleep(1);}return 0; }

test_client.cc

#include "tcp_socket.hpp"  // 包含TCP套接字类的头文件int main(int argc, char* argv[]) {// 检查命令行参数数量是否正确if (argc != 3) {// 如果参数数量不正确,打印使用说明并退出程序printf("Usage ./test_client [ip] [port]\n");return 1;}// 创建TCP套接字对象TcpSocket sock;// 尝试连接到指定IP和端口的服务器// argv[1]是IP地址字符串,atoi(argv[2])将端口号字符串转换为整数bool ret = sock.Connect(argv[1], atoi(argv[2])); // 根据连接结果打印相应信息if (ret) {printf("connect ok\n");  // 连接成功} else {printf("connect failed\n");  // 连接失败}// 无限循环,保持程序运行// 每秒休眠一次,防止CPU占用过高while (1) {sleep(1);}return 0;  // 程序正常结束(实际上永远不会执行到这里)
}

此时启动 3 个客户端同时连接服务器, 用 netstat 查看服务器状态, 一切正常.

但是启动第四个客户端时, 发现服务器对于第四个连接的状态存在问题了

tcp 3 0 0.0.0.0:9090 0.0.0.0:* LISTEN 
9084/./test_server 
tcp 0 0 127.0.0.1:9090 127.0.0.1:48178 SYN_RECV - tcp 0 0 127.0.0.1:9090 127.0.0.1:48176 ESTABLISHED - tcp 0 0 127.0.0.1:48178 127.0.0.1:9090 ESTABLISHED 
9140/./test_client 
tcp 0 0 127.0.0.1:48174 127.0.0.1:9090 ESTABLISHED 
9087/./test_client 
tcp 0 0 127.0.0.1:48176 127.0.0.1:9090 ESTABLISHED 
9088/./test_client 
tcp 0 0 127.0.0.1:48172 127.0.0.1:9090 ESTABLISHED 
9086/./test_client 
tcp 0 0 127.0.0.1:9090 127.0.0.1:48174 ESTABLISHED - tcp 0 0 127.0.0.1:9090 127.0.0.1:48172 ESTABLISHED -

客户端状态正常, 但是服务器端出现了 SYN_RECV 状态, 而不是 ESTABLISHED 状态

这是因为, Linux内核协议栈为一个tcp连接管理使用两个队列:

  1. 半链接队列(用来保存处于SYN_SENT和SYN_RECV状态的请求)
  2. 全连接队列(accpetd队列)(用来保存处于established状态,但是应用层没有调用accept取走的请求)

而全连接队列的长度会受到 listen 第二个参数的影响.

全连接队列满了的时候, 就无法继续让当前连接的状态进入 established 状态了.

这个队列的长度通过上述实验可知, 是 listen 的第二个参数 + 1.


文章转载自:

http://lUaCpxE0.qLLcp.cn
http://W3TTye0N.qLLcp.cn
http://r5OLsGoa.qLLcp.cn
http://jhjD4gVG.qLLcp.cn
http://2r9UWZeQ.qLLcp.cn
http://EElkj8IK.qLLcp.cn
http://NMi4po1K.qLLcp.cn
http://lAhZSIN4.qLLcp.cn
http://6KpS0qfZ.qLLcp.cn
http://gm43fgzE.qLLcp.cn
http://6oFDxSO4.qLLcp.cn
http://2lsGEdpa.qLLcp.cn
http://9dUfA3UO.qLLcp.cn
http://329T3V9c.qLLcp.cn
http://ml1ImPc9.qLLcp.cn
http://IRSdoLro.qLLcp.cn
http://bgvsHUao.qLLcp.cn
http://iUDquFMb.qLLcp.cn
http://NXljeYPy.qLLcp.cn
http://fyx0FkkW.qLLcp.cn
http://L4LPTxNK.qLLcp.cn
http://KFO4T7Cn.qLLcp.cn
http://rvdNGwOs.qLLcp.cn
http://BNukbB8N.qLLcp.cn
http://HnZQDFeX.qLLcp.cn
http://5cIWkgtp.qLLcp.cn
http://D9sHEDt6.qLLcp.cn
http://oJIE4NKk.qLLcp.cn
http://VwnNevO1.qLLcp.cn
http://Oq4KCFnz.qLLcp.cn
http://www.dtcms.com/wzjs/643878.html

相关文章:

  • 网站内容建设评估网站建设源代码版权问题
  • asp商业网站源码网站服务器 重启
  • 营销型网站建设市场榆林市住房和城市建设局网站
  • 免费自建网站wordpress标题主题
  • 福州公司网站建设一定要用主流程序php语言做推广效果哪个网站好
  • 东莞网站建设外贸招标代理公司注册
  • 建设领域现场专业人员报名网站网站开发算软件开发吗
  • 网站建设视频教程 百度云中国建设网站培训通知
  • 做网站开发的过程摄影作品欣赏网站推荐
  • 什么是门户网站线上宣传方式有哪些
  • 临沂供电公司网站asp网站模版安装
  • 常州网站建设团队企业网站策划大纲模板
  • 网站一年得多少钱wordpress中英文版如何
  • 做网站必须搭框架么家居企业网站建设流程
  • 网站seo优化综合服务公司哪家好高明区住房和城乡建设局网站
  • 网站模版可以套用吗大连百度搜索排名
  • 室内装潢网站的排名优化怎么做
  • 翻译网站平台建设教育局网站建设方案
  • 网站301和302做网站栏目是什么意思
  • 唐山制作网站的公司wordpress 云相册
  • 专业门户网站建设网站推广的案例
  • 搜索引擎推广网站青岛网站建设选圣城
  • 企业网站建设珠海吉林珠海网站建设
  • 室内装修设计网站推荐网站建设怎么在png上写文字
  • 雅虎提交网站入口仙游住房与城乡建设局网站
  • 南宁网站建设-中国互联如何用wordpress做企业
  • 坂田网站建设wordpress 栏目设置
  • 广州网站建设哪好百度推广开户怎么开
  • centos怎么做网站扬州住房与城乡建设局网站
  • 网站建设的软件有哪些十大品牌网