Python中的网络编程
- IP地址
- IPv4
- IPv6
- 查看本机的IP地址
- win
ipconfig - linux
ifconfig
- win
- ping命令
ping www.baidu.com查看是否能连通指定的网站ping 192.168.1.222查看是否能连通指定的IP
- Port端口
- 0-65535
- TCP/IP协议
- 传输数据之前要建立连接,通过三次握手建立:
- 客户端 --> 服务端 ,SYN 客户端告诉服务端我是谁
- 服务端 --> 客户端 , ACK + SYN
- 服务端告诉客户端我收到了你的SYN(ACK)
- 服务端告诉客户端我是谁 (SYN)
- 客户端 --> 服务端 ,ACK
- 服务端告诉客户端我收到了你的SYN ,同时确认你收到了我的SYN(ACK)
- 开始传输数据 报文+内容
- 报文类似元数据,描述数据从哪来、到哪去,数据大小、数据类型等
- 内容:byteString类型,即bytes
- 传输数据之前要建立连接,通过三次握手建立:
bytes和str类型的互相转换
a = '哈萨克斯坦@#$%^&*(abc'
# str -> bytes类型(byte String)
# 按照utf8的格式,将str转为byteString类型
a_bytes = a.encode() # 默认utf8
print(a_bytes)# bytes类型 -> str
a = a_bytes.decode() # 默认utf8
print(a)""" b'\xe5'
bytes 字节类型字符串 只是为了方便网络通讯 16进制数字来表述符号
【b】 表示bytes
【\xe5】 表示后边两个字符是16进制数字
"""# 按照gbk的格式,将str转为byteString类型
b_bytes = a.encode('gbk')
print(b_bytes)
b = b_bytes.decode('gbk') # bytes类型 -> str
print(b)# bytes数据一定可以转换为字符串吗???
# 不一定(比如:图片、视频、音频等)
- TCP服务端代码
跨服务器测试时:
- 服务端代码和客户端代码必须在同一个网段之内!
- 服务端绑定ip时,请使用
0.0.0.0;对应的客户端代码要连接的ip写服务端的IP
"""TCP 服务端"""
import socket# ① 创建一个服务端socket套接字,负责接收客户端的请求(门迎)
# socket.AF_INET:使用IPV4的地址
# socket.SOCK_STREAM:使用TCP协议
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# ② 绑定服务端的ip地址和端口号
# ('ip地址', 端口号)
# server_socket.bind(('127.0.0.1', 8080))
server_socket.bind(('192.168.25.76', 8080))# ③ 设置服务端进入监听状态
# 服务端同一时间支持多少个客户端向它发起连接请求
server_socket.listen(128)# ④ 服务端等待客户端进行连接
print('服务端等待接收客户端的请求...')# 没有客户端来连接服务端时,accept方法会阻塞等到,直到有客户端来连接,accept才会返回
# service_client_socket:也是一个 socket 对象,负责和对应的客户端进行通信(服务员)
# ip_port:是一个元祖,包含的是客户端的ip和port
service_client_socket, ip_port = server_socket.accept()
print(f'服务端来自{ip_port}客户端的连接...')# ⑤ 服务端接收客户端发送的数据
# 如果客户端没有给服务端发送消息,recv也会阻塞等待
recv_msg = service_client_socket.recv(1024) # bytes
print(f'接收到来自客户端的消息:{recv_msg.decode()}')# ⑥ 服务端给客户端回应数据
send_msg = input('请输入给客户端回应的消息:') # str
service_client_socket.send(send_msg.encode())# ⑦ 关闭服务端的 socket
service_client_socket.close()
server_socket.close()
- TCP客户端代码
"""TCP客户端"""
import socket# ① 创建一个客户端的 socket 套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# ② 通过客户端 socket 连接服务端
client_socket.connect(('192.168.25.76', 8080))# ③ 发送消息给服务端
send_msg = input('请输入发送给服务端的消息:')
client_socket.send(send_msg.encode())# ④ 接收服务端回应的消息
recv_msg = client_socket.recv(1024) # bytes
print(f'接收到来自服务端的消息:{recv_msg.decode()}')# ⑤ 关闭客户端 socket
client_socket.close()
相关文章:
Python中的网络编程
IP地址 IPv4IPv6查看本机的IP地址 win ipconfiglinux ifconfig ping命令 ping www.baidu.com 查看是否能连通指定的网站ping 192.168.1.222 查看是否能连通指定的IP Port端口 0-65535 TCP/IP协议 传输数据之前要建立连接,通过三次握手建立: 客户端 --&g…...
uni-app js语法
锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…...
【论文阅读笔记】Detecting Camouflaged Object in Frequency Domain
1.论文介绍 Detecting Camouflaged Object in Frequency Domain 基于频域的视频目标检测 2022年发表于CVPR [Paper] [Code] 2.摘要 隐藏目标检测(COD)旨在识别完美嵌入其环境中的目标,在医学,艺术和农业等领域有各种下游应用。…...
Mysql(5日志备份恢复)
一.日志管理 MySQL 的日志默认保存位置为 /usr/local/mysql/data 先看下mysql的日志文件有无: 修改配置文件添加:错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启 修改配置文件添加:通用查…...
MR实战:实现数据去重
文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据文件1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 (二)实现步骤1、Map阶段实现(1)创建Maven项目(2)添加相关依赖…...
JVM 常用知识和面试题
1. 什么是JVM内存结构? jvm将虚拟机分为5大区域,程序计数器、虚拟机栈、本地方法栈、java堆、方法区; 程序计数器:线程私有的,是一块很小的内存空间,作为当前线程的行号指示器,用于记录当前虚拟…...
【教3妹学编程-算法题】一年中的第几天
3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开森。 3妹:2哥你看今天的天气多好啊,经过了一周多的寒潮,天气总算暖和些了。 2哥ÿ…...
ramdump 中的memory统计
0. 前言 ramdump是指某个时刻系统或者子系统发生crash等异常,系统将内存中的数据通过一定的方式保存下来,相当于一个系统内存快照,用以开发者离线分析系统异常问题。 ramdump 工具中有很多内存统计的脚本,本文逐一剖析内存相关的…...
Element-Ui树形数据懒加载,删除到最后一个空数组不刷新问题
使用elemenui树形删除数据的时候刷新页面,我在网上找了好多方法,要么没用,要么都是部分代码,自己又看不懂,不得不硬着头皮看源码,发现了有个方法可以刷新。 使用elemenui树形删除数据的时候刷新页面。源码里…...
基于NASM搭建一个能编译汇编语言的汇编软件工具环境(利用NotePad++)
文章目录 一、创建汇编语言源程序二、Notepad的下载、安装、使用三、下载和安装编译器NASM3.1 下载NASM编译器3.2 安装并配置环境变量 四、编译汇编语言源程序(使用命令)五、下载和使用配套源码及工具六、将编译功能集成到Notepad 一、创建汇编语言源程序…...
使用setoolkit制作钓鱼网站并结合dvwa靶场储存型XSS漏洞利用
setoolkit是一款kali自带的工具 使用命令启动 setoolkit 1) Social-Engineering Attacks 1) 社会工程攻击 2) Penetration Testing (Fast-Track) 2) 渗透测试(快速通道) 3) Third Party Module…...
计算机组成原理-总线概述
文章目录 总线简图总线的物理实现总览总线定义总线的特性总线的分类按数据格式分类串行总线并行总线 按总线功能分类注意系统总线的进一步分类 总线的结构单总线的机构双总线的结构三总线的结构四总线的结构 小结 总线简图 总线的物理实现 如果该为数据总线,那么当…...
三角函数两角和差公式推导
一.几何推理 1.两角和公式 做一斜边为1的直角△ABC,任意旋转非 k Π , k N kΠ,kN kΠ,kN,补充如图,令 ∠ A B C ∠ α , ∠ C B F ∠ β ∠ABC∠α,∠CBF∠β ∠ABC∠α,∠CBF∠β ∴ ∠ D B F ∠ D B A ∠ α ∠ β 90 , ∠ D A …...
HarmonyOS page生命周期函数讲解
下面 我们又要看一个比较重要的点了 页面生命周期 页面组件有三个生命周期 onPageShow 页面显示时触发 onPageHide 页面隐藏时触发 onBackPress 页面返回时触发 这里 我们准备两个组件 首先是 index.ets 参考代码如下 import router from ohos.router Entry Component struc…...
3D视觉-结构光测量-线结构光测量
概述 线结构光测量中,由激光器射出的激光光束透过柱面透镜扩束,再经过准直,产生一束片状光。这片光束像刀刃一样横切在待测物体表面,因此线结构光法又被成为光切法。线结构光测量常采用二维面阵 CCD 作为接受器件,因此…...
ssm基于web的马病管理系统设计与实现+jsp论文
摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,马病信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…...
SaaS版Java基层健康卫生云HIS信息管理平台源码(springboot)
云his系统源码,系统采用主流成熟技术开发,B/S架构,软件结构简洁、代码规范易阅读,SaaS应用,全浏览器访问,前后端分离,多服务协同,服务可拆分,功能易扩展。多集团统一登录…...
redis,memcached,nginx网络组件,网络编程——reactor的应用
目录 目标网络编程关注的问题连接的建立连接的断开消息的到达消息发送完毕 网络 IO 职责检测 IO检测 io剖析 操作 IO 阻塞IO 和 非阻塞IOIO 多路复用epoll结构以及接口 reactor编程连接建立连接断开数据到达数据发送完毕 reactor 应用:后续补充源码解析单 reacrtor多…...
【机电、机器人方向会议征稿|不限专业|见刊快】2024年机械、 图像与机器人国际会议(IACMIR 2024)
【机电、机器人方向会议征稿|不限专业|见刊快】2024年机械、 图像与机器人国际会议(IACMIR 2024) 2024 International Academic Conference on Machinery, Images, and Robotics 会议将聚焦“机械、成像和机器人”相关的最新研究领域,为国内…...
uniapp学习之路
uniapp 学习之路 1. 下载HBuilderX2. 下载uView初始框架3. 开始学习1.更改页面背景色,渐变色 1. 下载HBuilderX https://www.dcloud.io/hbuilderx.html?ivk_sa1024320u2. 下载uView初始框架 https://ext.dcloud.net.cn/plugin?id15933. 开始学习 1.更改页面背景…...
Windows 一键部署 OpenClaw 教程|5 分钟搭建本地 AI 智能体,轻松搞定复杂配置
OpenClaw 2.7.1 接入阿里云百炼超详细图文教程 📋 前置准备 本地已安装并能正常运行 OpenClaw 2.7.1 WindowsOpenClaw 顶部 Gateway 保持在线状态拥有可正常登录的阿里云账号网络可正常访问阿里云百炼控制台: https://bailian.console.aliyun.com/cn-be…...
开发AI应用时借助Taotoken模型广场快速进行模型选型与测试
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 开发AI应用时借助Taotoken模型广场快速进行模型选型与测试 在开发基于大语言模型的应用或功能时,一个常见的挑战是如何…...
【紧急通告】DeepSeek-R1毒性分类器存在语境盲区?3小时内验证并热修复的4种API级补丁
更多请点击: https://intelliparadigm.com 第一章:【紧急通告】DeepSeek-R1毒性分类器存在语境盲区?3小时内验证并热修复的4种API级补丁 近期社区报告指出,DeepSeek-R1毒性分类器在处理嵌套反讽、多轮对话上下文拼接及跨语言混合…...
智能工厂能源监测管理平台解决方案
在某大型制造企业的生产园区,管理人员长期面临着一系列能源管理困境:由于厂区各个电表仍依赖人工抄录,数据滞后且易出错,导致管理层无法实时掌握每条生产线甚至每台关键设备的真实耗电情况;同时,由于电表分…...
DownKyi终极指南:快速掌握B站视频批量下载与8K超高清获取技巧
DownKyi终极指南:快速掌握B站视频批量下载与8K超高清获取技巧 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
基于梯度权值追踪的无监督域自适应优化研究
SummaryArticleObjectiveMethodComments基于梯度权值追踪的域自适应分类研究解决无监督领域自适应方法中存在的过拟合问题文章采用了基于梯度权值追踪的剪枝与优化算法来解决过拟合问题。该算法首先对样本进行训练,识别出重要的连接,并用权值的绝对值来量…...
Beyond Compare 5激活实战指南:3种方法轻松搞定专业版授权
Beyond Compare 5激活实战指南:3种方法轻松搞定专业版授权 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天评估期结束而烦恼吗?每次打开软件…...
汽车科技前沿:从上海车展看电动化、自动驾驶与供应链变革
1. 四月汽车科技前沿动态概览又到了每月梳理行业动态的时候了。四月份的汽车科技圈,用一个词来形容就是“多点开花”。上海车展的盛大回归,像一剂强心针,宣告了全球汽车产业活力的全面复苏。与此同时,软件定义汽车的浪潮下&#x…...
2026公考培训机构综合评测:粉笔教育领跑,线上线下一体化成关键优势
【评测说明】 2026年公考培训市场持续分化,考生在选择机构时,不再只看“名师”或“价格”,而是综合考量上榜概率、资金安全、学习便捷性。本文从上岸数据可验证性、性价比、退费效率、师资体系稳定性、线上线下覆盖能力五大维度,对…...
Qt WebEngine实战避坑:证书管理、代理设置与高DPI适配那些事儿
Qt WebEngine实战避坑指南:证书管理、代理配置与高DPI适配深度解析 在跨平台桌面应用开发领域,Qt WebEngine作为Chromium引擎的封装实现,为开发者提供了强大的Web内容嵌入能力。然而在实际项目落地过程中,开发者常会遇到三类典型问…...
