Python知识分享第十九天-网络编程
网络编程
概述用来实现 网络互联 不同计算机上运行的程序间可以进行数据交互也叫Socket编程 套接字编程
三要素IP地址概述设备在网络中的唯一标识分类IPV4城域网1+3广域网2+2局域网3+1IPV6八字节 十六进制相关dos命令查看ipwindows: ipconfigmac和linux: ifconfig测试网络ping 域名和主机名一个特殊ip127.0.0.1本地回环(回路)地址代表本机端口端口传输数据的 端口号程序在设备中的唯一标识范围0~65535 0~1023被系统占用 或做保留接口 我们自己定义端口的时候 要避开这个范围协议概述: 指的是通信规则分类UDP无需依赖连接数据包模式 不能超过64kb不安全效率高不区分客户端服务端 发送方接收方TCP面向连接字节流 无大小限制安全可靠的协议效率相对较低区分客户端的服务端扩展三次握手客户端 => 服务器申请建立连接服务器 => 客户端 可以连接客户端 => 服务器端 成功建立连接四次挥手双向A => BB = > A
Socket编程(原理)介绍也叫套接字通信 通信双方都有自己的Socket对象 数据在Socket之间通过数据报包或者 字节流的方式进行传输端口号复用概述程序如果执行结束 释放端口 通常需要1~2分钟 如果我们继续使用 未被释放时就会报错解决方案换一个端口号设置端口号重用server_socket.setsocketopt(socket.SOL_SOCKET,scoket.SO_REUSEADDR,True)
网络编程操作步骤客户端1.创建客户端Socket对象2.连接服务器 ip和端口号3.接收服务器的消息4.发送数据到服务器端5.释放资源服务器端1.创建服务器端Socket2.绑定服务器端ip和端口号3.设置监听连接数4.启动监听 等待客户端建立连接5.给客户端发送数据6.接收客户端发送数据7.释放资源
一. 请简要描述下网络编程的三要素,并分别说说其作用。
“”"
网络编程三要素:
IP: 用来确定设备在网络中的唯一标识
端口: 用来确定应用在设备上的唯一标识
协议: 规定通信规则
“”"
二. 请说说TCP网络程序开发的步骤流程。
TCP服务器程序开发流程;
1.创建socket对象
2.绑定服务器
3.设置监听
4.等待接收客户端的连接请求
5.发送数据
6.接收数据
7.关闭socket
TCP客户端程序开发流程
1.创建socket对象
2.连接服务器
3.接受数据
4.发送数据
5.关闭socket
三. 将字符串“AI人工智能前景广阔”转换为二进制bytes类型的结果;将二进制bytes数据 b"AI python"转换为字符串str类型的结果
b1 = 'AI人工智能前景广阔'.encode('utf-8')
print(b1)
print(b1.decode('utf-8'))s1 = b"AI python".decode()
print(s1, type(s1))
四. 通过TCP客户端发送消息:欢迎来王者荣耀,真好玩!通过TCP服务器端接收消息,并打印出来
服务器端代码
import socket
# 创建服务器端的Socket对象 指定 地址族 协议
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址 端口 (元组方式)
server_socket.bind(('127.0.0.1', 10086))
# 设置最大监听数量
server_socket.listen(1)
# 开启监听 等待客户端建立连接 返回元组 (负责和客户端交互的Socket 客户端的IP信息)
client_socket, client_info = server_socket.accept()
# 给客户端发送消息
client_socket.send('欢迎来王者荣耀,真好玩!'.encode('utf-8'))
# 等待客户端回执信息
data = client_socket.recv(1024)
data_str = data.decode('utf-8')
print(f'服务器端收到{client_info} 发的消息 {data_str}')
# 释放资源
client_socket.close()
# 设置端口重用
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
客户端代码
import socket# 创建客户端Socket对象 指定 地址族 协议
client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定服务器端地址 IP 端口 (元组格式)
client_socket.connect(('127.0.0.1', 10086))
# 接受服务器传过来的值
data_bytes = client_socket.recv(1024)
data = data_bytes.decode('utf-8')
print(f'客户端收到的信息{data}')# 给服务器发送回执信息
client_socket.send('王者荣耀真好玩,我很喜欢'.encode('utf-8'))# 释放资源
client_socket.close()
五.说一说为什么主进程创建子进程的代码块需要写在“if name == ‘main’:下
因为main函数默认会在子线程执行完后才关闭
六.请使用多任务形式完成:一边编程、一边听音乐、一边跟同事聊天。要求如下:
a.使用多进程完成;
import multiprocessing, timedef coding():for i in range(1, 11):time.sleep(0.02)print(f'我在写第 {i} 行代码')def music():for i in range(1, 11):time.sleep(0.01)print(f'我在听第 {i} 首歌')def chat():for i in range(1, 11):time.sleep(0.01)print(f'我们的聊天人数有 {i} 个')if __name__ == '__main__':p1 = multiprocessing.Process(target=coding)p2 = multiprocessing.Process(target=music)p3 = multiprocessing.Process(target=chat)p1.start()p2.start()p3.start()
b.执行效果图。

坚持分享 共同进步 如有错误 欢迎指出
相关文章:
Python知识分享第十九天-网络编程
网络编程 概述用来实现 网络互联 不同计算机上运行的程序间可以进行数据交互也叫Socket编程 套接字编程 三要素IP地址概述设备在网络中的唯一标识分类IPV4城域网13广域网22局域网31IPV6八字节 十六进制相关dos命令查看ipwindows: ipconfigmac和linux: ifconfig测试网络ping 域…...
C# 绘制GDI红绿灯控件
C# 绘制GDI红绿灯控件 using System; using System.Windows.Forms; using System.Drawing;public class TrafficLightControl : Control {protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);Graphics g e.Graphics;g.SmoothingMode System.Drawing.Drawin…...
Centos 8 服务器时间校正
Centos 8 服务器时间校正 使用chrony服务自动同步时间: 1.安装chrony: sudo dnf install chrony 2.启动并使chrony服务自动启动: sudo systemctl start chronyd sudo systemctl enable chronyd 3.添加配置置文件/etc/chrony.conf指向了可靠…...
模型 正则化方法(通俗解读)
系列文章 分享 模型,了解更多👉 模型_思维模型目录。控制模型复杂度,防过拟合。 1 正则化方法的应用 1.1 正则化方法在教育领域的应用案例 - 重塑教学模式 背景: 在教育领域,正则化方法可以被理解为对教学模式和学习…...
ffmpeg命令
ffmpeg是专门处理多媒体文件(包括音频、视频)的命令; ffplay 是 ffmpeg 软件包中的一个命令行多媒体播放器,它主要用于播放音视频文件; # fmpeg命令转换格式,将mp3格式转换为wav格式 ffmpeg -i input.mp3…...
使用 EasyExcel 实现高效的 Excel 读写操作
在日常开发中,Excel 文件的读写操作是一个常见的需求。EasyExcel 是阿里巴巴开源的一个高性能、易用的 Excel 读写库,可以大幅提高处理 Excel 文件的效率。它通过事件驱动模型优化了大数据量 Excel 的读写性能,非常适合处理大文件或高并发场景…...
数据结构(栈Stack)
1.前言: 在计算机科学中,栈(Stack)是一种基础而存在的数据结构,它的核心特性是后进先出(LIFO,Last In, First Out)。想象一下,在现实生活中我们如何处理一堆托盘——我们…...
Windows 11 环境下 条码阅读器输入到记事本的内容不完整
使用Windows11时,为什么记事本应用程序中的扫描数据被截断或不完整?为什么sdo 特殊字符的显示与Windows 10 记事本应用程序不同? 很多人认为和中文输入法有关,其实主要问题出在这个windows11下的记事本程序上,大家知道这个就可以了&#x…...
【串口助手开发】visual studio 使用C#开发串口助手,生成在其他电脑上可执行文件,可运行的程序
1、改成Release,生成解决方案 串口助手调试成功后,将Debug改为Release,点击生成解决方案 2、运行exe文件 生成解决方案后,在bin文件夹下, Release文件夹下,生成相关文件 复制一整个Release文件夹…...
Redis设计与实现读书笔记
Redis设计与实现读书笔记 Redis设计与实现[^1]简单动态字符串SDS的基础定义与C字符串的差别常数获取长度杜绝缓冲区溢出减少修改字符串时带来的内存重分配次数二进制安全函数兼容 链表链表和链表节点的实现 字典字典的实现哈希表定义哈希表节点定义字典定义 哈希算法解决键冲突…...
UE5 Do Once 节点
在 Unreal Engine 5 (UE5) 中,Do Once 节点是一个蓝图节点,用于确保某个操作或代码只执行一次,直到某些条件被重置。它通常用于处理需要执行一次的逻辑,例如初始化、事件触发、或防止重复执行某些操作。 如何使用 Do Once 节点&a…...
javascript(前端)作为客户端端通过grpc与cpp(服务端)交互
参考文章 https://blog.csdn.net/pathfinder1987/article/details/129188540 https://blog.csdn.net/qq_45634989/article/details/128151766 前言 临时让我写前端, 一些配置不太懂, 可能文章有多余的步骤但是好歹能跑起来吧 你需要提前准备 公司有自带的这些, 但是版本大都…...
前端常用缓存技术深度剖析
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
Asp.net Mvc在VSCore中如何将增删改查的增改添加数据传输到页面(需配合上一篇Mvc的增删改查一起)
Linq集成查询(关联Lambda) First FirstOrDefault 找到第一个符合条件的元素 First(x >x.Id id) 返回第一个Id等于id的元素,如果都没有符合的,报错FirstOrDefault(x >x.Id id) 返回第一个Id等于id的元素,如果…...
Android显示系统(04)- OpenGL ES - Shader绘制三角形
一、前言: OpenGL 1.0采用固定管线,OpenGL 2.0以上版本重要的改变就是采用了可编程管线,Shader 编程是指使用着色器(Shader)编写代码来控制图形渲染管线中特定阶段的处理过程。在图形渲染中,着色器是在 GP…...
微信 创建小程序码-有数量限制
获取小程序码:小程序码为圆图,有数量限制。 目录 文档 接口地址 功能描述 注意事项 请求参数 对接 获取小程序码 调用获取 小程序码示例 总结 文档 接口地址 https://api.weixin.qq.com/wxa/getwxacode?access_tokenaccess_token 功能描述 …...
重生之我在异世界学编程之C语言:操作符篇
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文1. 算术操作符2. 关系࿰…...
365天深度学习训练营-第P7周:马铃薯病害识别(VGG-16复现)
文为「365天深度学习训练营」内部文章 参考本文所写记录性文章,请在文章开头带上「👉声明」 🍺 要求: 自己搭建VGG-16网络框架【达成√】调用官方的VGG-16网络框架【达成√】如何查看模型的参数量以及相关指标【达成√】 &#…...
解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾
在数字化时代,开源已成为推动技术创新和知识共享的核心力量,尤其在数据领域,开源技术的涌现不仅促进了行业的快速发展,也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用,时序数据库…...
Kubernetes 告警标签规范与最佳实践
1. 前言 在现代化的 Kubernetes 运维环境中,规范的告警标签系统对于快速定位和解决问题至关重要。本文将详细介绍告警标签的设计规范和最佳实践,帮助团队建立高效的告警处理流程。 © ivwdcwso (ID: u012172506) 2. 标签体系设计 2.1 基本概念 告警标签(Labels)是一…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
