首页 > 其他 > 详细

网络模型、scoket套接字、udp概念及代码实现、tcp概念及代码实现

时间:2020-12-21 21:15:58      阅读:51      评论:0      收藏:0      [点我收藏+]

网络模型的概念

  OSI七层模型(应表会传网数物)

    7.应用层
    6.表示层
    5.会话层
    4.传输层
    3.网络层
    2.数据链路层
    1.物理层

  TCP/IP五层模型(将OSI七层模型的应用层, 表示层, 会话层抽象为一层)

    5.应用层
    4.传输层
    3.网络层
    2.数据链路层
    1.物理层

  TCP/IP四层模型(将TCP/IP五层模型中的数据链路层和物理层合并为网络接口层(数据链路层))

    4.应用层
    3.传输层
    2.网络层
    1.网络接口层(数据链路层)

  模型各层的作用:

    应用层:与网络相关的程序通过网络与其他程序通信使用的数据格式规范

    传输层:解决诸如端到端可靠性(数据是否已经到达目的地)和保证数据按照正确的

        顺序到达这样的问题。TCP、UDP都是传输层协议

    网络层:解决在一个单一网络上传输数据包的问题

    数据链路层:它是数据包从一个设备的网络层传输到另外一个设备的网络层遵循的规范

      技术分享图片

 

socket语法格式介绍:

  import socket

  socket.socket(AddressFamily, Type)

  说明:函数 socket.socket创建一个socket,该函数带有两个参数

    Address Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET

    Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者 SOCK_DGRAM(数据报套接字,主要用于 UDP 协议)

  创建一个udp socket(udp套接字)

    技术分享图片

  创建一个tcp socket(tcp套接字)

    技术分享图片

 

  总结:

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

      创建套接字

      使用套接字收/发数据

      关闭套接字

udp套接字:

  发送:sendto()

  socket基本使用: 

    技术分享图片

 

 

   发送任意数据:

    技术分享图片

 

 

  循环发送数据:

    技术分享图片

  带有退出循环功能的发送:

    技术分享图片

  接收:

    技术分享图片

  绑定端口用来接收数据:

    技术分享图片

 

 

  解析接收到的数据:

    技术分享图片

  循环接收并显示数据:

    技术分享图片

 

 

  绑定端口发送数据:

    技术分享图片

 

 

 总结:

  创建socket套接字

    技术分享图片

 

 

  发送数据:

    技术分享图片

  接收数据:

    技术分享图片

 

 

 udp完成一个聊天

  使用udp完成一个能够收发消息的套接字

    技术分享图片

 

 

  udp聊天

    技术分享图片

 

 

   udp聊天升级

    技术分享图片

 

tcp套接字

  tcp套接字的概念

    TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

    TCP通信需要经过创建连接、数据传送、终止连接三个步骤

    tcp通信模型,需要在通信开始前,建立相关的链接,类似于现实生活中的打电话。

  tcp的特点:

    面向连接:通信双方必须先建立连接才能进行数据的传输,双方都必须为该连接分配必要的系统内核资源,以管理连接的状态和连接上的传输。

          双方间的数据传输都可以通过这一个连接进行。完成数据交换后,双方必须断开此连接,以释放系统资源。

          (一对一、TCP不适用于广播的应用程序,基于广播的应用程序请使用UDP协议)

    可靠传输:①tcp采用发送应答机制②超时重传③错误校④流量控制和阻塞管理

  udp的特点

    udp通信模型中,在通信开始之前,不需要建立相关的链接

  tcp与udp的不同点

    面向连接(确认有创建三方交握,连接已创建才作传输。)

    有序数据传输

    重发丢失的数据包

    舍弃重复的数据包

    无差错的数据传输

    阻塞/流量控制

  tcp严格区分客服端与服务端

    客户端

      创建套接字(SOCK_STREAM)

      链接服务器

      发送数据/接收数据

      关闭套接字

      技术分享图片

    服务端

      创建套接字(买个手机)

      绑定本地信息(插入手机卡)

      设置监听(设计手机响铃模式)

      等待客户链接(等待别人的电话)

      接收客服请求

      发送信息

      关闭套接字(两个)

      技术分享图片

 

     循环为多个客户端服务

      技术分享图片

 

    循环为多个客户端服务且多次服务一个客户端 

      技术分享图片

 

  总结:

    技术分享图片

    技术分享图片

网络模型、scoket套接字、udp概念及代码实现、tcp概念及代码实现

原文:https://www.cnblogs.com/wenchao-123/p/14169837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!