一、知识点

1、socket.socket 创建一个 socket,该函数带有两个参数:

  • Address Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET
  • Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要用于 UDP 协议

套接字使用流程 与 文件的使用流程很类似

创建套接字 -> 使用套接字收/发数据 -> 关闭套接字

2、TCP三次握手(建立连接)和四次握手(断开连接)

3、 TCP长/短连接的应用场景

  • 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。

    每个TCP连接都需要三次握手,这需要时间,如果每个操作都是先连接,

    例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

  • 而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,所以并发量大,但每个用户无需频繁操作情况下需用短连好。

二、代码样例

(一) UDP 代码

1、client

2、server

(二)  TCP 代码

1、client

2、server

(三) 下载器

最新文章

  1. span标签跳转新页面
  2. 最新GHOST XP系统安全稳定版 V2016年
  3. 从零开始写redis客户端(deerlet-redis-client)之路——第一个纠结很久的问题,restore引发的血案
  4. 忘记windows的登陆密码
  5. 【夯实Mysql基础】记一次mysql语句的优化过程!
  6. alpha发布(技术随笔)
  7. ArtJS(原创)
  8. 小白日记27:kali渗透测试之Web渗透-Http协议基础,WEB
  9. POJ 2528 Mayor’s posters
  10. 24种设计模式--访问者模式【Visitor Pattern】
  11. perl 公交车查询
  12. libev中timer时间事件监控器
  13. 2015上海赛区B Binary Tree
  14. BCD码与16进制互转算法
  15. asp.net core系列 58 IS4 基于浏览器的JavaScript客户端应用程序
  16. iOS 如何在自定义类中支持 "[]" 运算符
  17. Unity使用代码动态给按钮赋值各个状态下的图片
  18. 《React Native 精解与实战》书籍连载「iOS 平台与 React Native 混合开发」
  19. MT【266】求$a$的范围
  20. "上市时间: 2014年秋冬季" unicode十进制编码转中文

热门文章

  1. requirements基本使用
  2. doment ready事件和load事件的区别及实现
  3. Python之tuple元组详解
  4. CentOS 8 关闭防火墙
  5. C++学习---栈的构建及操作
  6. jquery动态绑定hover没有效果
  7. Docker学习笔记之-在CentOS中安装Docker
  8. webpack5文档解析(下)
  9. service下载任务
  10. js工厂函数