Python中套接字实现服务端和客户端3-3

news2024/11/16 18:51:59

3 创建客户端的步骤

创建客户端的步骤如图5所示。

图5 创建客户端的步骤

从图5可以看出,对于客户端来说,首先创建套接字,之后通过创建的套接字去连接服务端,如果连接成功,则继续通过该套接字向服务端发送数据,最后关闭套接字。

3.1 创建套接字

客户端创建套接字的方法与服务端相同,代码如下所示。

s = socket.socket()

3.2 连接服务端

通过connect()方法连接服务端,该方法的格式如下所示。

socket.connect(address)

其中,参数address是服务器的信息,包括IP地址和端口号。连接服务器的代码如下所示。

SERVER = '192.168.147.128'
PORT = 12345

s.connect((SERVER, PORT))

其中,SERVER表示服务器的IP地址,PORT表示服务器监听的端口号,最后将这两个变量组合成元组作为connect()方法的参数。如果不能成功连接服务器,connect()方法会间隔一段时间后再次尝试连接,此时代码会阻塞等待connect()的再次尝试,当尝试了一定次数后仍无法连接服务器,则connect()方法会抛出TimeoutError,即连接超时异常。如果成功连接了服务端,则代码会继续向下运行。

3.3 发送数据

成功连接了服务端之后,通过sendall()方法向服务端发送数据。该方法的格式如下所示。

socket.sendall(bytes[, flags])

其中,第一个参数bytes表示要发送的数据,该数据必须是字节类型;第二个参数flags是可选参数,表示指定了发送数据时的方式,默认值是0。通过sendall()方法发送数据的代码如下所示。

s.sendall(b'Hello Server!')

3.4 关闭套接字

在发送完数据之后,可以通过close()方法关闭套接字。

4 完整代码

4.1 服务端完整代码

import socket

HOST = ''
PORT = 12345
WORDS = b'Hello Client!'

s = socket.socket()
s.bind((HOST, PORT))
s.listen(1)
print('Server is starting...')

conn, addr = s.accept()
print('Connected by', addr)

data = conn.recv(1024)
print('Received:', data)

conn.close()
s.close()    
print('Server closed!')

4.2 客户端完整代码

import socket

SERVER = '192.168.147.128'
PORT = 12345

s = socket.socket()
s.connect((SERVER, PORT))
s.sendall(b'Hello Server!')
s.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1078190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

扩展windows 10 文件夹文件路径位数

Enable Long Paths in Windows 10, Version 1607, and Later PowerShell Copy New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force 管理员权限运行 PowerShell…

【开源电商网站】(2),使用docker-compose和dockerfile进行配置,设置自定义的镜像,安装插件,增加汉化包,支持中文界面汉化。

项目相关代代码地址 相关内容: https://blog.csdn.net/freewebsys/category_12461196.html 原文地址: https://blog.csdn.net/freewebsys/article/details/133666433 包括以下运行的详细代码: https://gitee.com/study-demo-all/oscommerc…

将cpu版本的pytorch换成gpu版本

1.首先激活虚拟环境 winRcmd 打开dos命令窗口 查看虚拟环境列表 conda env list 激活虚拟环境 2.将原来的pytorch_cpu版本换成gpu版本 注意:安装gpu版本的pytorch时并不需要先卸载原来的cpu版本pytorch,安装时会自己替换的 打开pytorch官网查看以前版本 Previo…

vant组件安装之后导入所有组件报错

问题:引入vant报错(Module build failed (from ./node_modules/postcss-loader/src/index.js): 解决办法:在node_modules里面找到 vant目录下面的lib里面的 index.css; 在url前面加上空格即可

MongoDB 笔记

1 insert 、create、save区别 insert: 主键不存在则正常插入;主键已存在,抛出DuplicateKeyException 异常 save: 主键不存在则正常插入;主键已存在则更新 insertMany:批量插入,等同于批量执行 insert create&#x…

地下城堡3最强英雄搭配,地下城堡3公认最强阵容

在地下城堡3中,组建一支最强的阵容是玩家们追求的目标之一。通过合理的角色搭配和战术配合,你可以打造一个无敌的团队,在战斗中几乎无往而不胜。下面是地下城堡3公认最强阵容搭配攻略,让你在游戏中轻松征战各个副本和挑战。 关注【…

基于 LSTM 进行多类文本分类(附源码)

NLP 的许多创新是如何将上下文添加到词向量中。一种常见的方法是使用循环神经网络。以下是循环神经网络的概念: 他们利用顺序信息。 他们可以捕捉到到目前为止已经计算过的内容,即:我最后说的内容会影响我接下来要说的内容。 RNNs 是文本和…

一次性读懂Mendix的库间“数据同步”功能

Data sync,对于那些深谙其道的技术高手而言,意义不言自明。然鹅对整天在村工厂里打螺丝的我来说,却经历了一段难捱的时期。时至今日,我仍然时不时地选择性地遗忘某些概念和技术点。因此,本文章记录我之前一点实操的心得…

【测试】robotframework安装

目录 python安装 pip一系列安装 运行效果 参考文档 python安装 注意管理员权限安装,不然2503的错误 。 pip一系列安装 pip install robotframework pip install wxPython pip install robotframework-ride 运行python ride.py pip install setuptools 解决…

125KHz低频接收唤醒芯片:Si3933(TSSOP16)

Si3933 具有内部时钟产生器,可使用晶体振荡器或者RC振荡器,也可以使用外部时钟。 Si3933 是一款三通道的D功耗ASK接 收机,可用于检测15KHz-150KHz低频载波频率的数字信号,并产生唤醒信号。内部集成的校验器用于检测 16 位或 32 位…

双态IT乌镇大会 | 首批《数据中心业务连续性等级评价准则》试点单位将诞生

2023年10月13日-15日,由ITSS分会、证券基金行业信息技术应用创新联盟指导,ITSS数据中心运营管理组(DCMG)、双态IT论坛、智能运维国标工作组主办,ITSS媒体组、AI范儿协办的“2023第六届双态IT乌镇用户大会”将于浙江乌镇…

SpringBoot采用Dynamic-Datasource方式实现多JDBC数据源

目录 1. Dynamic-Datasource实现多JDBC数据源配置1.1 特性1.2 Mysql数据准备2.2 通过Dynamic-Datasource实现多JDBC数据源2.2.1 pom.xml依赖 2.2.2 application.properties配置2.2.3 使用DS注解选择DataSource2.2.4 使用Transactional DSTransactional实现事务 2.3 动态数据源…

下一代架构设计:云原生、容器和微前端的综合应用

文章目录 云原生:构建可弹性扩展的应用1. 微服务架构2. 容器化3. 自动化和自动扩展 容器化和云原生的结合1. 一致性和可移植性2. 弹性和可伸缩性3. 快速部署和更新4. 资源利用率 微前端:前端架构的演进1. 微前端应用2. 统一的外壳应用3. 独立部署 云原生…

TikTok在跨境电商中的作用:挖掘潜在客户的最佳途径

​随着全球数字化浪潮的不断发展,跨境电商行业也经历了巨大的变革。传统的市场营销渠道已经不再足够,企业们需要不断探寻新的方法来吸引潜在客户。在这个过程中,社交媒体平台TikTok逐渐崭露头角,成为了吸引潜在客户的一个选择。本…

[PwnThyBytes 2019]Baby_SQL - 代码审计+布尔盲注+SESSION_UPLOAD_PROGRESS利用

[PwnThyBytes 2019]Baby_SQL 1 解题流程1.1 分析1.2 解题 2 思考总结 1 解题流程 1.1 分析 此题参考文章:浅谈 SESSION_UPLOAD_PROGRESS 的利用 访问正常来讲用ctf-wscan是能扫出source.zip文件的,且F12后提示了有source.zip,那我们就下载…

Apache POI使用

1.导入坐标 <!-- poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>${poi}</version></dependency><dependency><groupId>org.apache.poi</groupId><a…

elasticSearch7.9数据占用磁盘存储空间情况

最近&#xff0c;在VMware Workstation虚拟机上安装了es7.9&#xff0c;单节点的es&#xff0c;不是集群&#xff0c;然后建了一个索引&#xff08;包含3个分片和一个副本&#xff09;&#xff0c;插入了500万条数据&#xff0c;占据磁盘空间17G。如下图&#xff1a; 索引的字…

什么样的人适合下班后做点兼职副业

我们身边不乏一些讨论兼职副业的人&#xff0c;可是很多人都只停留在“想”的层面上&#xff0c;真正有执行力的人早就偷偷做起了副业&#xff0c;能力强的还做得风生水起。 什么样的人适合下班后做点副业呢&#xff1f;我觉得下班后&#xff0c;时间很宽裕&#xff0c;或者经济…

S7-1200PLC与昆仑通态触摸屏通讯

测试环境&#xff1a;Win10、MCGS、博图V16、1214DCDCDC 博途工控人平时在哪里技术交流博途工控人社群 博途工控人平时在哪里技术交流博途工控人社群 将PLC端做如下配置 1-MCGS配置S7-1200驱动 1.1-添加驱动 双击设备窗口 点击设备组态窗口下的设备管理&#xff0c;选择西门…

串级/级联控制知识点整理

串级控制系统是改善控制质量的有效方法之一&#xff0c;在过程控制中得到了广泛的应用。所谓串级控制&#xff0c;就是采用两个控制器串联工作&#xff0c;外环控制器的输出作为内环控制器的设定值&#xff0c;由内环控制器的输出去操纵控制阀&#xff0c;从而对外环被控量具有…