UDP Ping程序实现--第4关:客户端创建UDP套接字

news/2024/5/18 15:14:02 标签: udp, 网络协议, 网络

创作不易,还希望各位大佬支持一下 

👍 点赞,你的认可是我创作的动力! 

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! 

任务描述

本关任务:在 Ping 客户端程序中创建数据包套接字并设置超时时间。

相关知识

为了完成本关任务,你需要掌握:

  1. 创建数据包套接字;
  2. 设置超时时间。
创建数据包套接字

套接字 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)

设置套接字超时时间

在进行客户端向服务器发送 Ping 消息的过程中,有时候可能会因为网络原因造成一直连不上服务器(如服务器程序没有开启),这时如不手动停止,Socket 可能会一直尝试重连,造成资源的浪费。这就需要设置timeout来限制重连时间,当 Socket 尝试重连到指定的时间时,就会停止一切操作,并提示达到timeout设定阈值。 设置超时时间一般在创建套接字后,在网络通信之前进行。示例如下:

mysocket.settimeout(10)

 代码作用为设定套接字的超时时间为 10 秒。

编程要求

根据提示,在右侧编辑器代码的BeginEnd之间补充代码,创建使用数据包的套接字,并为其设定超时时间为 1 秒。

测试说明

平台会对你编写的代码进行测试,并输出该套接字的属性,如果和预期输出一致,就会通过本关。

预期输出:

  1. <socket.socket fd=3, family=AddressFamily.AF_INET, type=2050, proto=0, laddr=(‘0.0.0.0', 0)>
  2. 1.0

源程序示例 

from socket import *
 
########## Begin ##########
# 创建UDP套接字,使用IPv4协议
clientSocket = socket(AF_INET, SOCK_DGRAM) 
# 设置套接字超时值1秒
clientSocket.settimeout(1)
########## End ##########
 
print(clientSocket)
print(clientSocket.gettimeout())

创作不易,还希望各位大佬支持一下 

👍 点赞,你的认可是我创作的动力! 

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! 


http://www.niftyadmin.cn/n/5287000.html

相关文章

微信公众号多域名回调源码,微信消息转发功能

源码介绍 微信公众号多域名回调功能&#xff1a;微信公众号后台默认只能授权2个网页域名&#xff0c;用本系统突破这个限制&#xff0c;用同一个公众号对接无限多个网站。网站后台支持回调域名白名单的管理&#xff0c;以及登录记录的查看。 微信access_token获取功能&#x…

C语言字符串处理提取时间(ffmpeg返回的时间字符串)

【1】需求 需求&#xff1a;有一个 “00:01:33.90” 这样格式的时间字符串&#xff0c;需要将这个字符串的时间值提取打印出来&#xff08;提取时、分、秒、毫秒&#xff09;。 这个时间字符串从哪里来的&#xff1f; 是ffmpeg返回的时间&#xff0c;也就是视频的总时间。 下…

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境&#xff08;IDE&#xff09;来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发的。…

DM、HIVE和Kingbase8(人大金仓数据库)给列增加备注

DM数据库给列增加备注 1、创建表 CREATE TABLE test222 ( id int NOT NULL PRIMARY KEY, name varchar(1000) DEFAULT NULL, email varchar(1000) DEFAULT NULL, phone varchar(1000) DEFAULT NULL ) 2、给列添加注释 comment on column TEST222.NAME is 这是一个列注释; 例如…

时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-BiLSTM麻雀算…

计算机毕业设计 基于SpringBoot的高校宣讲会管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

H266/VVC帧间预测编码技术概述

帧间预测编码简述 帧间预测利用视频时间域的相关性&#xff0c;使用邻近已编码图像像素值预测当前图像的像素值&#xff0c;能有效去除视频时域冗余。 目前主要的视频编码标准中&#xff0c;帧间预测都采用基于块的运动补偿技术&#xff0c;不同的编码标准有不同的分块方式。 …

【数据结构和算法】删掉一个元素以后全为 1 的最长子数组

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;滑动窗口 2.2 滑动窗口解题模板 三、代码 3.1 方法一&#xff1a;滑动窗口 四…