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

news/2024/12/28 23:38:56/

头歌实践教学平台 (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.ppmy.cn/news/9010.html

相关文章

10天,几万字,源码深度解析之 Spring IOC

历时 10 天,终于把 Sping 源码系列写完了,该系列一共 5 篇,后续会整理成 PDF 教程,本文是最后一篇。 这篇文章主要讲解 IOC 容器的创建过程,让你对整体有一个全局的认识,文章没有复杂嵌套的 debug 流程&am…

【算法基础】算法的时间复杂度

一个语句的频度是指该语句在算法中被重复执行的次数。 算法中所有语句的频度之和记为T(n),它是该算法问题规模 的函数 时间复杂度主要分析 T(n)的数量级 算法中基本运算 (最深层循环内的语句)的频度与 T(n)同数量级,因此通常采用算法中基本运算的频度f(n…

序列生成策略——束搜索、贪心搜索、穷举搜索

序列搜索策略包括贪心搜索、穷举搜索和束搜索。 贪心搜索所选取序列的计算量最小,但精度相对较低。 穷举搜索所选取序列的精度最高,但计算量最大。 束搜索通过灵活选择束宽,在正确率和计算代价之间进行权衡。 在序列到序列学习&#xff08…

(黑马C++)L06 重载与继承

一、关系运算符重载 以重载等于号运算符为例&#xff1a; #include<string> #include <iostream> using namespace std;class Person { public:Person(string Name, int age) {this->m_Name Name;this->m_Age age;}public:string m_Name;int m_Age; };bo…

云计算运营—04 FusionSphere OpenStack 6.5方案介绍

FusionSphere OpenStack 6.5方案介绍 OpenStack 系统架构 OpenStack是什么 OpenStack是目前最流行的开源云操作系统&#xff1a; 资源抽象 OpenStack将各类硬件资源&#xff0c;通过虚拟化与软件定义的方式&#xff0c;抽象成资源池 资源分配与负载调度 OpenStack根据管理员…

【Linux编辑神器:vim】

目录 1. vim的基本概念 2. vim的基本操作 3. vim正常模式命令集 4. vim底行模式命令集 5. 简单vim配置 6 总结 什么是Vi/Vim? vi/vim的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0…

2023年,我觉得拼夕夕值得去

这一年下来&#xff0c;多少大厂梦破碎了&#xff0c;多少人选择被离开和被留下&#xff0c;都日子不那么好过&#xff0c;但其实结合2022年一整年下来&#xff0c;结合拼夕夕的股价表现&#xff0c;人家一年到头开支节流&#xff0c;人家还不断开新站点&#xff0c;晚会还赞助…

消息服务 + Serverless 函数计算如何助力企业降本提效?

作者&#xff1a;柳下 背景介绍 消息队列服务&#xff08;下文均以 Message Service 命名&#xff09;作为云计算 PaaS 领域的基础设施之一&#xff0c;其高并发、削峰填谷的特性愈发受到开发者关注。Message Service 对上承接消息生产者服务的请求&#xff0c;对下连接消费者…