0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

网络测试小助手完成套接字的创建使用过程分析

冬至配饺子 来源:多兰多 作者:Toranto 2022-08-18 18:16 次阅读

套接字

一、网络中如何进行通信

首要解决的问题是如何标识一个进程,否则通信无从谈起。

其实TCP、IP协议族已经帮我们解决了这个问题,网络层的IP地址可以唯一标识网络中的主机,传输层的“协议+端口”可以唯一标识主机中的应用程序(进行)。

二、套接字

socket(简称套接字)是进程间通信的一种方式。它与其他进程间通信的一个主要不同是,它能实现不同主机间的进程通信,我们网络上各种各样的服务大多是基于socket来完成通信的。例如我们每天浏览网页、qq聊天、收发email等等。

socket方法有两个参数

address family:可以选择

AF_INET

(用于internet进程间通信)或者

AF_UNIX

(用于同一台机器进程间通信),实际工作中常用AF_INET;② Type:套接字类型,可以是

SOCK_STREAM

(流式套接字,主要用于TCP协议)或者

SOCK_DGRAM

(数据包套接字,主要用于UDP协议)

创建套接字:

poYBAGL-EAaADA0IAABS8pXYHro557.png

UDP协议

一、UDP协议介绍

UDP----用户数据报协议,是一个无连接的简单地面向数据报的传输层协议。无连接指的是单方面的,就好比寄信和打电话,寄出去的信件可能在中途丢失,但是打电话不会,建立了连接就可以通话,没建立连接无法传输信息

UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证他们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个链接,且没有超时重发等机制,故而传输速度很快。

UDP是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能保证的。

特点(了解):UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。

适用情况:

UDP是面向消息的协议,通信时不需要建立连接,数据的传输自然是不可靠的,UDP一般用于多点通信和实时的数据业务,比如:

语音广播

视频

qq

TFTP(简单文件传送)

SNMP(简单网络管理协议)

RIP(路由信息协议,如报告股票市场,航空信息)

DNS(域名解析)

注重速度流畅udp操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中clientserver应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。

二、网络调试助手

接下来我们需要借助网络测试小助手来完成套接字的创建使用过程:

poYBAGL-ECuAPlZ1AAEQi6ylqrY127.png

三、示例

udp网络程序-发送数据:①创建套接字;②发送、接收数据;③关闭套接字。

poYBAGL-EFaABl7DAAF7zfaGkDw643.png

我们点击运行程序之后,先不要输入信息,打开网络调试助手,进行连接。

poYBAGL-EG-AajpgAAEtZ-jjBcQ597.png

输入你好!我们就可以在网络测试助手上收到消息。

poYBAGL-EI-AERNfAABo2BZ6dNs883.pngpYYBAGL-EJSAJVSnAAE1YJLAmes967.png

这次在网络测试助手上发送消息:你是GG还是MM?

poYBAGL-EMOAYlxXAAElglTeifI636.pngpoYBAGL-EMmAVHZBAAFNAUwuDmM770.pngpYYBAGL-EM-ANyxVAABILOaz0m8719.png

这是两次print不同的表达结果。

pYYBAGL-EOWACGi1AACmi9EObno221.png

其实,使用from socket import *会在创建套接字的时候使代码显得更加简洁凝练,因为它导入了所有功能。

poYBAGL-EPaAK2pcAAAsPOY0or4678.png


四、UDP网络通信过程

poYBAGL-EQuAMcrZAADEu2jY0C8666.png

和快递原理是差不多的。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Socket
    +关注

    关注

    0

    文章

    186

    浏览量

    34573
  • SNMP
    +关注

    关注

    0

    文章

    82

    浏览量

    29674
  • UDP协议
    +关注

    关注

    0

    文章

    68

    浏览量

    12656
  • TCPIP协议
    +关注

    关注

    0

    文章

    35

    浏览量

    11910
收藏 人收藏

    评论

    相关推荐

    【MiCOKit试用体验】庆科MiCO系统篇(5)MiCO 套接

    ,简单的说就是通信的两方的一种约定,用套接中的相关函数来完成通信过程。Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络
    发表于 10-24 17:05

    UNIX域套接

    UNIX域套接用于在同一台计算机上运行的进程之间的通信。虽然因特网域套接可用于同一目的,但UNIX域套接
    发表于 09-02 11:59

    命名UNIX域套接

    虽然socketpair函数能创建一对相互连接的套接,但是每一个套接都没有名字。这意味着无关进程不能使用它们。如果我们试图绑定同一地址时
    发表于 09-02 14:45

    vrf套接通信

    应用程序代码的修订版。我想>把这个结果带回VEE程序。有没有人这样做过>已经?我不确定,但我想我可能要在UNIX端创建一个套接端口>,因为我不确定我是否正在寻求帮助。>>
    发表于 09-05 09:42

    端点和套接怎么配置

    我有3个端点2个散列端点和1个端点。我想实现一个SLaveFIFO接口。是否有一个消费者的P-端口套接足以将数据从2个输出端点传输出去,我是否应该创建另一个消费者P-端口套接
    发表于 02-12 14:00

    STM32例程能否与MFC网络套接通信?

    如题。。想自己写一个PC上的MFC界面。不要求太高的实时性和过大过高的传输数据量,偶尔一次传输几十节即可,不知道STM32例程能否与MFC网络套接通信。如果可以就入手一套了,另外,
    发表于 08-02 04:36

    如何通过socket系统调用创建一个套接

    面试被问到TCP/UDP的bind函数设计,所以前来补一下套接部分的内容套接:进程间通信的方法:可以在同一台机器或者网络上不同计算机上的
    发表于 12-24 06:38

    一文读懂RT-Thread的SAL套接抽象层

    信息,用于将创建的 Socket 套接绑定到指定的网卡对象。下面示例完成通过传入的网卡名称绑定该网卡 IP 地址并和服务器进行连接的过程
    发表于 04-08 15:44

    lpc54s018套接创建失败的原因?

    我正在使用lpc54s018我正在尝试创建套接编程但是我发现套接创建失败所以请帮助我这是什么
    发表于 04-04 08:44

    如何在iMXRT1176上的LwIP中使用TCP套接

    使用原始 API) 2) OS模式可以使用Socket API和Raw API 3) lwip_ping_freertos 示例使用套接 API 我的问题是,在创建套接
    发表于 06-02 10:10

    Windows网络编程的原始套接详细说明

    原始套接都是使用 S O C K _ R AW这个套接类型来创建的,而且目前只有 Wi n s o c
    发表于 03-21 08:00 1次下载
    Windows<b class='flag-5'>网络</b>编程的原始<b class='flag-5'>套接</b><b class='flag-5'>字</b>详细说明

    DN93-PCMCIA套接交换

    DN93-PCMCIA套接交换
    发表于 04-19 18:20 14次下载
    DN93-PCMCIA<b class='flag-5'>套接</b><b class='flag-5'>字</b>交换

    Socket套接的原理说明

    和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接 (Socket)的接口,区分不同应用程序进程间的网络通信和连接。 生成套接
    的头像 发表于 06-18 19:16 1715次阅读
    Socket<b class='flag-5'>套接</b><b class='flag-5'>字</b>的原理说明

    网络系统调用网络套接入口函数

    网络套接入口函数 //所有的网络套接系统调用函数(socket bind listen co
    的头像 发表于 07-24 11:02 389次阅读

    套接socket包含哪些参数

    套接(Socket)是计算机网络中最基本的通信抽象,它定义了两个进程间通信的端点。在TCP/IP协议栈中,套接是实现
    的头像 发表于 08-16 11:02 173次阅读