c语言TCP网线信息交互编程,TCP/IP 网络编程之 socket 交互流程

TCP/IP 网络编程之 socket 交互流程

一, 概要

本篇文章主要讲解基于. net 中 tcp/ip 网络通信编程. 在自我进步的过程中记录这些内容, 方便自己记忆的同时也希望可以帮助到大家. 技术的进步源自于分享和不断的自我突破.

技术交流 QQ 群: 580749909 欢迎交流有问必答, 文章尾有个人的微信公众号有兴趣的小伙伴多多关注. 整篇文章走向比较偏应用层面, 不会涉及底层因为网络通信博大精深要把整个都讲明白可以出一本书了.

二, 简介

什么是网络编程, 网络编程就是编写程序使两台连联网的计算机相互交换数据. 怎么交换数据呢? 两台电脑都插一根线就可以了吗? 稍微夸张点说差不多是这个意思 (需要物理连接)

有人就会问了, 我平常跟张三聊 QQ 的时候我也没跟他直接连网线那怎么可以联网呢. 你买了电信的宽带电信是不是得给你牵线装猫, 最终这些线会连到电信的机房由他们来管理. 在这个基础上,

如何编写数据传输软件呢. 操作系统提供了 "套接字"(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. 挂断 (结束)

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

ab7653affab982b574eb7acc55df2e04.gif

个人技术分享公众号, 不定时更新技术文章↓

ab7653affab982b574eb7acc55df2e04.gif

来源: http://www.bubuko.com/infodetail-3360491.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值