当前位置: 首页 > news >正文

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——合并石子

文章目录 题目内容思路分析实现代码分析与总结 题目内容 思路分析 基本思路&#xff0c;先是遍历区间长度&#xff0c;然后再是遍历左端点&#xff0c;最后是遍历中间的划分点&#xff0c;将阶乘问题变成n三次方的问题 实现代码 // 组合数问题 #include <iostream> #in…...

数据库——实验12 数据库备份和还原

1. 备份设备的概念和方法 备份设备是指 SQL Server 中存储数据库和事务日志备份副本的载体&#xff0c;备份设备可以被定义成本地的磁盘文件、远程服务器上的磁盘文件、磁带。 在创建备份时&#xff0c;必须选择要将数据写入的备份设备。SQL Server 2005 可以将数据库、事务日…...

Node.js —— 前后端的身份认证 之用 express 实现 JWT 身份认证

JWT的认识 什么是 JWT JWT&#xff08;英文全称&#xff1a;JSON Web Token&#xff09;是目前最流行的跨域认证解决方案。 JWT 的工作原理 总结&#xff1a;用户的信息通过 Token 字符串的形式&#xff0c;保存在客户端浏览器中。服务器通过还原 Token 字符串的形式来认证用…...

文旅3d仿真数字人形象为游客提供全方位的便捷服务

在AI人工智能与VR虚拟现实技术的双重驱动下&#xff0c;文旅3D数字代言人正以其独特的魅力&#xff0c;频频亮相于各类文旅场景&#xff0c;为游客带来前所未有的个性化服务体验。他们不仅有趣有品&#xff0c;更能言善道&#xff0c;成为文旅业数字化发展的新亮点。 这些文旅3…...

leetcode算法常用函数

文章目录 字符相关字符串相关数组和集合相关数值相关容器相关 核心关注算法逻辑&#xff0c;其他的常见操作用标准库里函数即可&#xff0c;不用浪费时间。 Java语言作为参考&#xff0c;记录刷题时常用的函数 字符相关 Character.isDigit(); //判断是否为数字Character.isLet…...

element-plus表格的表单校验如何实现,重点在model和prop

文章目录 vue&#xff1a;3.x element-plus&#xff1a;2.7.3 重点&#xff1a; 1) tableData放到form对象里 2) form-item的prop要写成tableData.序号.属性 <!--table-表单校验--> <template><el-form ref"forms" :model"form"><e…...

WPF密码输入框明文掩码切换

1&#xff0c;效果 2&#xff0c;代码&#xff1a; WPF的PasswordBox不能像Winform中的PasswordBox那样&#xff0c;通过PasswordBox.PasswordChar(char)0显示明文。所以这里使用无外观控件构筑掩码明文切换。 无外观控件遵守Themes/Generic.xaml文件配置. <ResourceDicti…...

SaaS架构详细介绍及一个具体实现的示例

SaaS架构详细介绍 软件即服务&#xff08;SaaS&#xff0c;Software as a Service&#xff09;是一种通过互联网交付软件应用程序的模式。 SaaS提供商托管应用程序&#xff0c;并通过网络将其提供给最终用户&#xff0c;用户无需安装和维护软件&#xff0c;只需通过浏览器或其他…...

四川音盛佳云电子商务有限公司正规吗?靠谱吗?

在数字化浪潮席卷全球的今天&#xff0c;电子商务已成为推动经济发展的重要引擎。四川音盛佳云电子商务有限公司&#xff0c;作为抖音电商服务的佼佼者&#xff0c;正以其独特的视角和创新的策略&#xff0c;引领着抖音电商的新潮流&#xff0c;开启着电商服务的新篇章。 四川…...

C++ 写的_string类,兼容std::string, MFC CString和 C# 的string

代码例子&#xff1a; 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; } 输出&#xff1a; _Str.h /***************************************…...

【揭开深度学习之核:反向传播算法简析】

文章目录 前言反向传播算法的基础工作原理伪代码示例关键点结论 前言 在深度学习的世界里&#xff0c;反向传播算法是一张藏在神秘面纱后的地图&#xff0c;它指引着神经网络通过复杂的数据迷宫&#xff0c;找到最优解的路径。本文将简要介绍反向传播算法的原理&#xff0c;探…...

Web3 知识体系架构图

Web3 知识体系架构图 │ ├── 1. 基础概念 │ │ │ ├── 1.1 区块链 │ │ ├── 工作原理 │ │ ├── 公链 vs 私链 │ │ └── 常见区块链平台&#xff08;如比特币、以太坊&#xff09; │ │ │ ├── 1.2 去中心化 │ │ ├── P2P 网络 │ │ ├── 去中心化…...

SQL、Mongo、Redis一般适用于那些场景

在一个项目中同时使用 MySQL、Redis 和 MongoDB 是相对常见的做法&#xff0c;因为它们各自具有不同的特点和适用场景&#xff0c;可以组合使用以满足不同的需求。下面是它们的一些常见用途和特点&#xff1a; MySQL&#xff1a; 关系型数据库&#xff1a; MySQL 是一个传统的关…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...