头歌:Ping服务端创建UDP套接字(底部附全关完整答案)
创始人
2024-05-05 16:24:10
0

头歌实践教学平台 (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_STREAM 或 SOCK_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 以上

编程要求


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

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

完整答案


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

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

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

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

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

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...