当前位置:网站首页>socket快速理解
socket快速理解
2022-08-03 15:58:00 【sean.liu】
相信大家都知道,socket用于描述IP地址和端口,是一个通信链的句柄。但是如何使用它,它是如何通信的。
直接看代码或者函数说明可能有点乱。在这里给出一个直观清晰的解释。下图是tcp套接字的工作流程。然后再用类比说明让你快速明白工作流程。
tcp套接字流程
服务器端:
- 获取电话线 socket()
- 分配电话号码 bind()
- 等着电话打来 listen()
- 接听电话 accept()
- 相互交谈 read()/write()
- 挂断电话 close()
客户端:
- 获取电话线 socket()
- 呼叫服务器 connect()
- 相互交谈 read()/write()
- 挂断电话 close()
二者区别:
- 服务端是需要绑定地址的bind()函数,客户端不需要。
- 客户端用connect()链接,服务端用listen()等待,accept()接收。
- 客户端挂断close()直接关掉整个socket(),但服务端不是,服务端close()传入的是accept()返回的描述符,不是socket()返回的描述符。因为一个服务端是可以链接多个客户端的,所以accept()一个链接,就会生成一个文件描述符,而客户端的socket是直接用socket()返回的描述符通信的。
边栏推荐
- How to prevent hacking Windows server security Settings
- 请问下阿里云全托管flink能执行两条flink sql命令么?
- 移动应用出海,你的“网络优化”拖后腿了吗?
- MATLAB gcf图窗保存图像,黑色背景/透明背景
- How Navicat connects to MySQL on a remote server
- 在 360 度绩效评估中应该问的 20 个问题
- 【码蹄集新手村600题】将一个函数定义宏
- window.open不显示favicon.icon
- ECCV 2022 | Relational Query-Based Temporal Action Detection Methods
- 【QT】Qt项目demo:数据在ui界面上显示,鼠标双击可弹窗显示具体信息
猜你喜欢
MySQL性能优化_小表驱动大表
深入浅出Flask PIN
技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris
基于DMS的数仓智能运维服务,知多少?
Introduction to the advantages of the new generation mesh network protocol T-Mesh wireless communication technology
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户
深入浅出Flask PIN
leetcode: 899. Ordered Queue [Thinking Question]
JS基础--判断
为什么我强烈推荐使用智能化async?
随机推荐
土耳其国防部:联合协调中心将对首艘乌克兰粮船进行安全检查
CopyOnWriteArrayList详解
请问下,flink cdc监控oracle,我看源码是通过sid方式的,请问怎么改成service
《安富莱嵌入式周报》第276期:2022.07.25--2022.07.31
2021年数据泄露成本报告解读
自定SvgIcon公用组件
如何将二维空间先验注入到ViT中? UMA&港理工&阿里提出SP-ViT,为视觉Transformer学习2D空间先验知识!...
Detailed ReentrantLock
leetcode:899. 有序队列【思维题】
CS免杀姿势
Basic knowledge points in js - events
如何选择合适的损失函数,请看......
QT QT 】 【 to have developed a good program for packaging into a dynamic library
移动应用出海,你的“网络优化”拖后腿了吗?
Why do I strongly recommend using smart async?
mysql delete execution error: You can't specify target table 'doctor_info' for update in FROM clause
5v充8.4v1A电流充电管理ic
请问下阿里云全托管flink能执行两条flink sql命令么?
How to prevent hacking Windows server security Settings
LyScript 验证PE程序开启的保护