zoukankan      html  css  js  c++  java
  • 网络编程socket理论一

    网络通信理论

    首先说下网络之间的通信流程看图

    Socket 层是位于运输层和应用层之间的,封装好的,方便使用

    Socket 是什么和工作流程

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

     一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理。

    Tcp的三次握手和四次挥手

    先看理论图

    这些都是底层实现的,socket中都不用写这些,只需要明白其中原理就行,

    三次握手:

    三次握手:客户端先给服务端发送一个syn请求,如果客户端收到就回复一个ack,客户端收到服务端的消息后,也会回复一个ack表示能收到对方的消息:

    其实三次握手就是:保证服务端和客户端都能接收到对方的消息

    四次挥手:

    客户端给服务端发送消息说:自己发送完了,问服务端是否还有消息:

    服务端将数据发送完毕

    服务端发送消息说自己发送完毕,并准备关闭链接

    客户端也关闭链接

    通俗的来说就是:

    三次握手: 通俗的来讲就是 A和B打电话

    第一次握手 : 你好, 我是A, 你能听到我说话吗

    第二次握手 : 听到了, 我是B, 你能听到我说话吗

    第三次握手 : 听到了, 我们可以开始聊天了

     

    三次握手其实就是为了检测双方的发送和接收能力是否正常, 你说呢?

    四次挥手

    第一次挥手 : A告诉B, 我没数据发了, 准备关闭连接了, 你要发送数据吗

    第二次挥手 : B发送最后的数据

    第三次挥手 : B告诉A, 我也要关闭连接了

    第四次挥手 : A告诉B你可以关闭了, 我这边也关闭了

     

    scoket编程请看下一篇文章

  • 相关阅读:
    单元测试之道读书笔记(七)
    单元测试之道读书笔记(六)
    单元测试之道读书笔记(五)
    单元测试之道读书笔记(三)
    技术网站推荐
    CentOS7部署Haproxy 1.7.2
    Centos7.0配置MySQL主从服务器
    Centos7.0安装mysql5.6
    centos7配置Java环境
    Centos6.5 DNS配置
  • 原文地址:https://www.cnblogs.com/xiaokang01/p/9057004.html
Copyright © 2011-2022 走看看