Python学习---基于TCP协议的网络通信程序案例
TCP简介:
●TCP 面向连接、可靠的、基于字节流的传输控制协议
●TCP的特点
○面向连接
○可靠传输
■应答机制
■超时重传
■错误校验
■流量管控
●TCP通信模型
TCP严格区分客户端、服务端
tcp通信模型:
客户端代码:
# 1﹑导入socket模块
import socket# 2·创建socket套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 3·建立tcp连接(和服务端建立连接)
address = ("192.168.52.2", 8080)
tcp_client_socket.connect(address)
# 4·开始发送数据(到服务端)
tcp_client_socket.send("你好,世界!".encode("gbk"))
# 接收数据:二进制数据
recv_data = tcp_client_socket.recv(1024)
recv_text = recv_data.decode("gbk")
print("收到数据:", recv_text)
# 5·关闭套接字
tcp_client_socket.close()
服务端代码:
1.能够接受一个客户端的多条信息
2.能够接受多个客户端连接
目前是单线程,只有第一个客户端断开连接后第二个客户端才能连接,多线程可实现多个客户端同时连接收发消息
import socket# 1.socket创建一个套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.bind绑定ip和port,默认本地ip地址
address = ("", 10000)
tcp_server_socket.bind(address)
# 3.开启监听,listen使套接字变为可以被动链接,允许接受最大连接数
tcp_server_socket.listen(128)
while True:# 4.accept等待客户端的链接,返回一个新的套接字和客户端的ip地址端口号,此套接字负责和客户端通信recv_data = tcp_server_socket.accept()# 5.recv/send接收发送数据new_client_socket, client_ip_port = recv_dataprint(f"{client_ip_port} 已连接……………………")while True:recv_data = new_client_socket.recv(1024)# 当接受到为空时说明客户端已经断开连接,服务器也应该断开,非空即为真:if recv_data:recv_text = recv_data.decode("gbk")print(f"接收到来自{str(client_ip_port)}的信息:{recv_text}")else:print("客户端已经断开连接!!!!")break# 关闭本次通信连接new_client_socket.close()
# 6.关闭服务器连接
tcp_server_socket.close()
相关文章:
Python学习---基于TCP协议的网络通信程序案例
TCP简介: ●TCP 面向连接、可靠的、基于字节流的传输控制协议 ●TCP的特点 ○面向连接 ○可靠传输 ■应答机制 ■超时重传 ■错误校验 ■流量管控 ●TCP通信模型 TCP严格区分客户…...
正确可用--Notepad++批量转换文件编码为UTF8
参考了:Notepad批量转换文件编码为UTF8_怎么批量把ansi转成utf8-CSDN博客https://blog.csdn.net/wangmy1988/article/details/118698647我参考了它的教程,但是py脚本写的不对. 只能改一个.不能实现批量更改. 他的操作步骤没问题,就是把脚本代码换成我这个. #-*-…...
每天五分钟深度学习框架PyTorch:创建具有特殊值的tensor张量
本文重点 tensor张量是一个多维数组,本节课程我们将学习一些pytorch中已经封装好的方法,使用这些方法我们可以快速创建出具有特殊意义的tensor张量。 创建一个值为空的张量 import torch import numpy as np a=torch.empty(1) print(a) print(a.dim()) print(s.shape) 如图…...
2024电工杯数学建模B题Python代码+结果表数据教学
2024电工杯B题保姆级分析完整思路代码数据教学 B题题目:大学生平衡膳食食谱的优化设计及评价 以下仅展示部分,完整版看文末的文章 import pandas as pd df1 pd.read_excel(附件1:1名男大学生的一日食谱.xlsx) df1# 获取所有工作表名称 e…...
LabVIEW和ZigBee无线温湿度监测
LabVIEW和ZigBee无线温湿度监测 随着物联网技术的迅速发展,温湿度数据的远程无线监测在农业大棚、仓库和其他需环境控制的场所变得日益重要。开发了一种基于LabVIEW和ZigBee技术的多区域无线温湿度监测系统。系统通过DHT11传感器收集温湿度数据,利用Zig…...
FastCopy
目录 背景: 简介: 原理: 下载地址: 工具的使用: 背景: 简介: FastCopy是一款速度非常快的拷贝软件,软件版本为5.7.1 Fastcopy是日本的最快的文件拷贝工具,磁盘间相互拷贝文件是司空见惯的事情,通常情况…...
stm32常用编写C语言基础知识,条件编译,结构体等
位操作 宏定义#define 带参数的宏定义 条件编译 下面是头文件中常见的编译语句,其中_LED_H可以认为是一个编译段的名字。 下面代码表示满足某个条件,进行包含头文件的编译,SYSTEM_SUPPORT_OS可能是条件,当非0时,可以…...
秋招突击——算法——模板题——区间DP——合并石子
文章目录 题目内容思路分析实现代码分析与总结 题目内容 思路分析 基本思路,先是遍历区间长度,然后再是遍历左端点,最后是遍历中间的划分点,将阶乘问题变成n三次方的问题 实现代码 // 组合数问题 #include <iostream> #in…...
数据库——实验12 数据库备份和还原
1. 备份设备的概念和方法 备份设备是指 SQL Server 中存储数据库和事务日志备份副本的载体,备份设备可以被定义成本地的磁盘文件、远程服务器上的磁盘文件、磁带。 在创建备份时,必须选择要将数据写入的备份设备。SQL Server 2005 可以将数据库、事务日…...
Node.js —— 前后端的身份认证 之用 express 实现 JWT 身份认证
JWT的认识 什么是 JWT JWT(英文全称:JSON Web Token)是目前最流行的跨域认证解决方案。 JWT 的工作原理 总结:用户的信息通过 Token 字符串的形式,保存在客户端浏览器中。服务器通过还原 Token 字符串的形式来认证用…...
文旅3d仿真数字人形象为游客提供全方位的便捷服务
在AI人工智能与VR虚拟现实技术的双重驱动下,文旅3D数字代言人正以其独特的魅力,频频亮相于各类文旅场景,为游客带来前所未有的个性化服务体验。他们不仅有趣有品,更能言善道,成为文旅业数字化发展的新亮点。 这些文旅3…...
leetcode算法常用函数
文章目录 字符相关字符串相关数组和集合相关数值相关容器相关 核心关注算法逻辑,其他的常见操作用标准库里函数即可,不用浪费时间。 Java语言作为参考,记录刷题时常用的函数 字符相关 Character.isDigit(); //判断是否为数字Character.isLet…...
element-plus表格的表单校验如何实现,重点在model和prop
文章目录 vue:3.x element-plus:2.7.3 重点: 1) tableData放到form对象里 2) form-item的prop要写成tableData.序号.属性 <!--table-表单校验--> <template><el-form ref"forms" :model"form"><e…...
WPF密码输入框明文掩码切换
1,效果 2,代码: WPF的PasswordBox不能像Winform中的PasswordBox那样,通过PasswordBox.PasswordChar(char)0显示明文。所以这里使用无外观控件构筑掩码明文切换。 无外观控件遵守Themes/Generic.xaml文件配置. <ResourceDicti…...
SaaS架构详细介绍及一个具体实现的示例
SaaS架构详细介绍 软件即服务(SaaS,Software as a Service)是一种通过互联网交付软件应用程序的模式。 SaaS提供商托管应用程序,并通过网络将其提供给最终用户,用户无需安装和维护软件,只需通过浏览器或其他…...
四川音盛佳云电子商务有限公司正规吗?靠谱吗?
在数字化浪潮席卷全球的今天,电子商务已成为推动经济发展的重要引擎。四川音盛佳云电子商务有限公司,作为抖音电商服务的佼佼者,正以其独特的视角和创新的策略,引领着抖音电商的新潮流,开启着电商服务的新篇章。 四川…...
C++ 写的_string类,兼容std::string, MFC CString和 C# 的string
代码例子: using namespace lf; int main() { CString s1 _t("http://www.csdn.net"); _string s2 s1; CString s3 s2; _pcn(s1); _pcn(s2); _pcn(s3); return 0; } 输出: _Str.h /***************************************…...
【揭开深度学习之核:反向传播算法简析】
文章目录 前言反向传播算法的基础工作原理伪代码示例关键点结论 前言 在深度学习的世界里,反向传播算法是一张藏在神秘面纱后的地图,它指引着神经网络通过复杂的数据迷宫,找到最优解的路径。本文将简要介绍反向传播算法的原理,探…...
Web3 知识体系架构图
Web3 知识体系架构图 │ ├── 1. 基础概念 │ │ │ ├── 1.1 区块链 │ │ ├── 工作原理 │ │ ├── 公链 vs 私链 │ │ └── 常见区块链平台(如比特币、以太坊) │ │ │ ├── 1.2 去中心化 │ │ ├── P2P 网络 │ │ ├── 去中心化…...
SQL、Mongo、Redis一般适用于那些场景
在一个项目中同时使用 MySQL、Redis 和 MongoDB 是相对常见的做法,因为它们各自具有不同的特点和适用场景,可以组合使用以满足不同的需求。下面是它们的一些常见用途和特点: MySQL: 关系型数据库: MySQL 是一个传统的关…...
保姆级教程:在ArcGIS Pro插件中集成你的自定义工具箱(以‘消除重复要素’为例)
从脚本到按钮:ArcGIS Pro插件开发实战指南 在GIS日常工作中,我们常常会遇到一些重复性的数据处理任务。比如数据质检环节的"消除重复要素"操作,虽然可以通过Python脚本实现,但每次都需要打开IDE或Python窗口执行代码&am…...
MCP Server生产级配置:Playwright与LLM集成的避坑指南
1. 这不是又一个“Playwright入门教程”,而是一份能直接塞进CI流水线的MCP Server生产级配置实录你有没有遇到过这样的场景:团队刚决定用AI驱动自动化测试,技术选型会上大家一致看好Playwright MCP(Model Context Protocol&#…...
第三卷第4章:原型模式设计思想
第三卷第4章:原型模式设计思想 目录介绍 01.案例引入与思考 1.1 痛点场景 1.2 它哪里不舒服 1.3 引出本篇主角 02.原型模式介绍 2.1 原型模式由来 2.2 原型模式定义...
【数据结构与算法】数据结构基础——栈和队列
目录栈和队列1. 栈1.1 栈的概念1.2 栈的实现方式分析1.3 栈的实现1.3.1 栈的初始化与销毁1.3.2 入栈与出栈1.3.3 栈的判空与有效元素个数1.3.4 栈顶元素1.4 栈的扩展1.4.1 两栈共享空间2. 队列2.1 队列的概念2.2 队列的实现方式分析2.3 队列的实现2.3.1 队列的初始化与销毁2.3.…...
ZMJS,把 JavaScript 解释器放进 SAP ABAP 应用服务器之后,很多扩展思路会变得不一样
我今天看这个 oisee/zmjs 仓库时,最吸引人的不是它把 JavaScript 语法做进了 ABAP,而是它选择了一条非常 SAP 的路线,纯 ABAP、无外部依赖、无 Kernel Module、以类和接口的形式运行在 SAP 应用服务器内部。仓库自己的定位很直接,ZMJS 是一个面向 SAP ABAP 的 Mini JavaScr…...
League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理?
League Akari:如何通过LCU API实现英雄联盟游戏流程的智能化管理? 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Leag…...
正视孩童情绪波动,耐心陪伴平稳疏导
孩子的情绪就像夏天的天气,前一秒还晴空万里,后一秒可能就乌云密布。面对突如其来的哭闹、发脾气或者闷闷不乐,很多家长会急着“灭火”——要么讲道理,要么直接制止。但其实,情绪波动本身不是问题,它是孩子…...
XZ1018,100V,40A,NMOS 封装:TO252
封装:TO252类型:NVDS:100V VGS: 20V ID:40ARDS(ON):10V <14mΩRDS(ON):4.5V <19mΩ型号: XZ1018 封装:TO252类型…...
昇腾CANN cmake 实战:CANN CMake 构建系统——跨平台编译配置与模块化管理
8 个 CANN 仓库各需独立构建(ops-transformer/ops-nn/hccl/ge/…)→ 手写 8 套 CMakeLists.txt(CANN 路径判断、跨 NPU 型号编译、第三方库兼容)。cmake 仓库提供统一的 FindCANN.cmake CANNConfig.cmake 模板——任何仓库只需 f…...
如何用Nucleus Co-Op让单机游戏变身本地多人分屏神器
如何用Nucleus Co-Op让单机游戏变身本地多人分屏神器 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 还在为想和朋友一起玩游戏却只有一台电脑而烦…...
