头歌:Ping服务端创建UDP套接字(底部附全关完整答案)

news2024/10/4 15:38:58

头歌实践教学平台 (educoder.net)

Ping 的 服务程序中 创建一个使用 UDP 协议 套接字

数据包套接字类型


套接字三种类型:流式套接字(SOCK_STREAM)数据包套接字(SOCK_DGRAM)原始套接字(SOCK_RAW

数据包格式套接字(Datagram Sockets)也叫“无连接的套接字”,在代码中使用 SOCK_DGRAM 表示。

特征如下:

强调快速传输而非传输顺序;
传输的数据可能丢失也可能损毁;
限制每次传输的数据大小;
数据的发送和接收是同步的;

数据包套接字也使用 IP 协议作路由,但是它不使用 TCP 协议,而是使用 UDP 协议(User Datagram Protocol,用户数据报协议)

QQ 视频聊天和语音聊天主要使用 SOCK_DGRAM 来传输数据、SOCK_DGRAM 没有想象中的糟糕,不会频繁的丢失数据,数据错误只是小概率事件

为套接字绑定 IP 地址及端口


套接字 Socket 实质上提供了主机间进程通信的连接点

进程通信之前,双方首先必须各自创建一个连接点,否则是没有办法建立联系并相互通信的。

一个完整的 Socket 则用一个通信双方的相关描述:

{协议,本地地址,本地端口,远程地址,远程端口}

实际应用中,在创建一个 Socket 时先用一个半相关描述(另一半尚不确定):

{协议,本地地址,本地端口}

每一个 Socket 有一个本地的唯一端口号,由操作系统分配

Python 创建套接字函数


socket(socket_family,socket_type,protocal=0)

其中:

socket_family 一般为AF_INET

socket_type 可以是 SOCK_STREAMSOCK_DGRAM

protocol 一般不填,默认值为 0

如创建 TCP 套接字:

tcpSock = socket(AF_INET, SOCK_STREAM)

创建 UDP 套接字:

udpSock = socket(AF_INET, SOCK_DGRAM)

为套接字绑定主机


绑定指为套接字绑定地址包含主机及其端口

AF_INET下,以元组(host,port)的形式表示地址

host:用字符串表示的IP地址。表示本机,也可用回环地址127.0.0.1

port:端口号,数字表示

1024 以下为系统约定,自定义的用 1024 以上

编程要求


根据提示,在右侧编辑器代码的BeginEnd之间补充代码

创建一个数据包套接字,并绑定本机地址,端口号为 12000

完整答案


(11条消息) 头歌第1关:Ping服务端创建UDP套接字-网络基础文档类资源-CSDN文库

(11条消息) 头歌UDPPing程序实现-接收并转发消息-网络基础文档类资源-CSDN文库

(11条消息) 头歌UDPPing程序实现-服务端模拟丢包事件-网络基础文档类资源-CSDN文库

(11条消息) 头歌UDPPing程序实现-客户端创建UDP套接字-网络基础文档类资源-CSDN文库

(11条消息) 头歌UDPPing程序实现-客户端向服务器发送消息并接收消息.txt-网络基础文档类资源-CSDN文库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/136687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaSE---多用户网络通信系统

目录 项目开发流程 多用户网络通信系统的架构设计 客户端 界面层 服务层 管理层 服务端 服务层 功能层 管理层 总结 项目开发流程 多用户网络通信系统的架构设计 整体 作为一个可供多个用户使用的通信系统,那么每个用户和其他用户之间的连接必定不是直接…

电脑宽带连接提示错误代码769怎么办?

有用户反映,在使用宽带连接网络时,出现错误代码769,无法连接到指定目标怎么办?这里整理了错误代码769的可能原因和修复方法,带大家顺利连接网络。错误代码769的原因:连接线松动或损坏网卡被禁用网卡驱动过时…

【信息论与编码 沈连丰】第四章:离散信源的信源编码

【信息论与编码 沈连丰】第四章:离散信源的信源编码第四章 离散信源的信源编码4.1 信源编码的模型4.2 信息传输速率和编码效率4.3 单义可译定理4.4 无失真信源编码定理4.5 几种典型的信源编码方法4.6 汉字编码方法及其讨论4.7 图像的信源编码4.8 误码对信源译码的影…

openFeign远程调用返回页面404 ,对应配置文件不生效,排除数据源等问题

在使用上架商品功能时,在debug时候,发现在将数据发送给ES保存时,无法远程调用es的服务,报错404找不到接口,如下图: 一开始以为是openFeign的问题,经过检查,各种接口、注解都没问题&…

2022尚硅谷SSM框架跟学(一)MyBatis基础一

2022尚硅谷SSM框架跟学 一MyBatisSSM框架整合课程优势课程体系框架图MyBatis1、MyBatis简介1.1MyBatis历史1.2MyBatis特性1.3MyBatis下载1.4和其它持久化层技术对比JDBCHibernate 和 JPAMyBatis2.搭建MyBatis2.1开发环境2.2创建maven工程(1)打包方式:jar(2)引入依赖…

【UE4 第一人称射击游戏】20-添加瞄准十字线

上一篇:【UE4 第一人称射击游戏】19-修复冲刺或换弹时可以进行射击的bug本篇效果:步骤:先下载一个瞄准的十字线图片,可以从阿里巴巴矢量图库下载:https://www.iconfont.cn/search/index?searchTypeicon&q%E7%9E%8…

反射Reflection

目录1. 反射快速入门1. 需求2. 运用反射2. 反射原理图2.1 反射相关的主要类2.1 反射优点和缺点2.1.1 反射调用优化-关闭访问检查4. Class类分析4.1 Class类常用方法4.2 获取Class类对象【六种】4.3 哪些类型有class对象4.4 动态和静态加载4.5 类加载流程图5. 获取类结构信息5.1…

RabbitMQ、Kafka、RocketMQ三种消息中间件对比总结

文章目录前言侧重点架构模型消息通讯其他对比总结参考文档前言 不论Kafka还是RabbitMQ和RocketMQ,作为消息中间件,其作用为应用解耦、异步通讯、流量削峰填谷等。 拿我之前参加的一个电商项目来说,订单消息通过MQ从订单系统到支付系统、库存…

【国科大模式识别】第一次作业

【题目一】设 ωmax⁡\omega_{\max }ωmax​ 为类别状态, 此时对所有的 i(i1,…,c)i(i1, \ldots, c)i(i1,…,c), 有 P(ωmax⁡∣x)≥P\left(\omega_{\max } \mid \boldsymbol{x}\right) \geqP(ωmax​∣x)≥ P(ωi∣x)P\left(\omega_i \mid \boldsymbol{x}\right)P(ωi​∣x) …

理解 mysql 之 count(*)的性能问题

一、 count(*) 为什么性能差 在Mysql中,count()的作用是统计表中记录的总行数。而count()的性能跟存储引擎有直接关系,并非所有的存储引擎,count(*)的性能都很差。在Mysql中使用最多的存储引擎是:innodb 和 myisam 。 在 myisam…

手写RPC框架-整合注册中心模块设计与实现

源码地址:https://github.com/lhj502819/IRpc/tree/v2 思考 如果同一个服务有10台不同的机器进行提供,那么客户端该从哪获取这10台目标机器的ip地址信息呢?随着调用方的增加,如何对服务调用者的数据进行监控呢?服务提…

十五、类加载器、反射、xml

类加载器 1类加载器【理解】 作用 负责将.class文件(存储的物理文件)加载在到内存中 2类加载的过程【理解】 类加载时机 创建类的实例(对象)调用类的类方法访问类或者接口的类变量,或者为该类变量赋值使用反射方式来…

【C++编程调试秘籍】| 总结归纳要点

文章目录一、编译器是捕捉缺陷的最好场合1 如何使用编译器捕捉缺陷二、在运行时遇见错误该如何处理1 该输出哪些错误信息2 执行安全检查则会减低程序效率,该如何处理呢3 当运行时遇到错误时,该如何处理四、索引越界1 动态数组2 静态数组3 多维数组5 指针…

uboot驱动和Linux内核驱动有什么区别?

一、前言 uboot启动后,一些外设如DDR、EMMC、网口、串口、音频、显示等等已经被初始化,为什么Linux内核中还需要写Linux驱动呢? 二、uboot驱动和Linux驱动的区别 1、直观理解 驱动,不仅仅是为了初始化,还实现了一组…

《Linux》1.权限

1.用户 首先介绍一下Linux中的用户概念。Linux下有两种用户:超级用户(root),普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示…

FTP回复码

FTP回复码由3个数字和对应文本组成 恢复定义为3个数字编码,紧跟一个空格 sp,然后是一行文本,以telnet的换行符表是结束 但是,某些情况下,文本内容太长超过一行,这就需要在第一行和最后一行特殊处理。处理格…

C++模拟实现栈(stack)和队列 (queue)

目录 一、栈(stack) 的介绍 二、队列(queue) 的介绍 三、容器适配器 二、deque的简单介绍 三、模拟实现stack 3.1 stack.h 3.2 test.cpp 四、模拟实现queue 4.1 queue.h 4.2 test.cpp 一、栈(stack) 的介绍 1. stack是一种容器适配…

字符串、内存函数的介绍(13)

目录 1、字符串函数 1、strlen 模拟实现: 2、strcpy 模拟实现: 3、strcat 模拟实现: 4、strcmp 模拟实现: 5、strncpy 6、strncat 7、strncmp 8、strstr 模拟实现: 9、strtok 10、strerror 11、其他字…

回顾2022年5月IB全球统考成绩,这些学校IB成绩非常亮眼

IB大考成绩放榜,全球17,3878名学生在2022年5月的考试中获得文凭课程(DP)和职业课程(CP)的成绩。今年全球640位考生获得满分45分,全球平均分31.98分。以下是部分公布公布成绩的学校: 成都树德中学国际部:在2022年的全球…

电商维权控价方法论

电商经济繁荣发展,品牌销售渠道多样化,带来流量的同时,各种渠道问题也暴露出来,如,低价、侵权……渠道秩序面临着严峻挑战,品牌生命周期也受到了威胁。所以,越来越多的品牌选择维权控价&#xf…