Socket交互的基本流程?

TCP socket通信过程图

  

什么是网络编程,网络编程就是编写程序使两台连联网的计算机相互交换数据。怎么交换数据呢?操作系统提供了“套接字”(socket)的组件我们基于这个组件进行网络通信开发。tcp套接字工作流程都以“打电话”来生动表达,tcp套接字可以比喻成电话。

电话可以同时用来拨打和接听的,但对套接字而言,拨打和接听是有区别的。我们先讲解套接字创建过程。其实这个过程跟我们生活中的打电话的场景比较相似。

我们来解析打电话的步骤:

  1. 通信方式有很多种,可以当面沟通、书信沟通、电话沟通、托人带话等等。这里张三和李四约定好都用电话沟通(确认通讯协议,这里指TCP/IP),张三给李四打电话(张三在这里的身份是客户端,而李四对应身份是服务端 身份也确认好了)。
  2. 双方打电话得有电话机(创建socket对象)
  3. 张三必须知道拨打对象的电话号码(知道服务端的ip和port),李四电话号码是123456(绑定套接字)
  4. 张三拨打李四电话(客户端连接服务端,connect连接)
  5. 被打电话的那一方听到电话响了(listen监听)
  6. 李四害怕是推销电话想着要跟他确认身份是不是张三,不是张三就准备挂断电话
  7. 接起电话确认对方身份,张三问是李四吗(三次握手中,第一次握手)
  8. 李四回答,我是李四。你是?(三次握手,第二次握手)
  9. 张三说你好李四,我是张三(三次握手,第三次握手)
  10. 确认过眼神遇上对的人,李四决定跟他继续谈话(accept接受连接请求)
  11. 接下来就开始长篇大论的攀谈(数据交互)
  12. 最终要挂电话了,张三对李四说那今天就讲到这里(四次挥手,第一次)
  13. 李四说行啊今天就讲到这里(四次挥手,第二次)
  14. 张三说那我挂断了啊(四次挥手,第三次)
  15. 李四说好的你挂吧(四次挥手,第四次)
  16. 挂断(结束)

阅读以上流程接下来我们来看看流程图就非常好理解了:

喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵呜刷题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值