创建socket服务端和客户端--通信(简单入门)

目录

服务端(server)

客户端(client)


服务端(server)

socket_client.py

import socket
#用的协议必须是同一个(要不然交流根本听不懂啊)
# 1、创建服务器的socket对象
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、绑定IP和端口
tcp_server_socket.bind(("", 8899))  #IP不填代表本机.端口随便填,后面要监听.# 3、设置监听,客户端连接需要排队.(最大数量)
tcp_server_socket.listen(128)# 4、接受客户端的IP地址和端口
server_client_socket, ip_port = tcp_server_socket.accept()
print(f"客户端的IP地址和端口:{ip_port}")
# ------------------------------------------------------------
# 5、接受客户端发送过来的数据 接受数据的大小 (字节)
recv_data = server_client_socket.recv(1024)# 6、获取并打印数据长度
recv_data_length = len(recv_data)
print(f"接受到的数据的长度:{recv_data_length}")# 7、接受客户端的信息(内容),解码
recv_content = recv_data.decode("utf-8")
print(f"接收到的客户端的信息是:{recv_content}")
# --------------------------------------------------------
# 8、服务端发送数据给客户端
send_data = "我已收到,正在处理...".encode("utf-8")
server_client_socket.send(send_data)
# ---------------------------------------------------
# 9、第一次关闭:服务端与客户端的套接字,终止客户端的通信.
server_client_socket.close()
tcp_server_socket.close()

客户端(client)

socket_client.py

import socket
#用的协议必须是同一个(要不然交流根本听不懂啊)
# 1、创建客户端的socket对象
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、和服务端的套接字进行连接
tcp_client_socket.connect(("127.0.0.1", 8899))
# ------------------------------------------------------
# 3、客户端发送数据给服务器
send_data = "hello,server,i am client".encode("utf-8")
tcp_client_socket.send(send_data)
# ------------------------------------------------
# 4、接受服务端发送过来的数据,并解码
recv_content = tcp_client_socket.recv(1024).decode("utf-8")
print(f"接收到服务器的消息为:{recv_content}")
# ---------------------------------------------
# 5、关闭连接
tcp_client_socket.close()

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

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

相关文章

【大模型系列】大模型评价指标总结

文章目录 1 图生文 (Image-to-Text)1.1 BLEU:基于准确率,得分越高越好1.2 METEOR:基于准确率和召回率,得分越高越好1.3 ROUGE:得分越高越好1.4 CIDEr:得分越高越好1.5 SPICE:得分越高越好1.6 Hu…

文本美学:text-image打造视觉吸引力

当我最近浏览 GitHub 时,偶然发现了一个项目,它能够将文字、图片和视频转化为文本,我觉得非常有趣。于是我就花了一些时间了解了一下,发现它的使用也非常简单方便。今天我打算和家人们分享这个发现。 项目介绍 话不多说&#xf…

4.2冰达机器人:视觉实例-机器人视觉循线、视觉实例-调整循线颜色

4.2.10a视觉实例-机器人视觉循线 本节内容演示一个机器人视觉的视觉循线实例 准备工作:布置一块区域作为循线场所,如下图所示。用蓝色胶带在地面贴一条路线(机器人极限转弯半径0.5m,不要贴得过于曲折),将…

【超级简单】vscode进入服务器的docker容器

前提 1、已经运行docker容器 2、已经用vscode链接服务器 在vscode中安装的插件 Dev Containers docker 在容器中安装的依赖 yum install openssh-server yum install openssh-clientsvscode进入服务器的docker容器 找到自己的容器,右键点击,找到…

c#多线程 使用lock锁

使用 lock 关键字可以确保在同一时刻只有一个线程可以访问被锁定的代码块,从而避免线程资源竞争。以下是修改后的示例代码: using System; using System.Threading;class Program {static int sharedNumber 0;static int iterations 1000000;static o…

从零开始学习写Shell脚本【第二期,语法说明-变量】

从零开始学习写Shell脚本【第一期,语法说明-变量】 Shell脚本的语法包括变量、控制结构、函数等: 变量的定义:使用符号进行赋值,不需要指定类型。变量的引用:使用$符号加上变量名。例子 # 变量定义 name"John&…

安卓手机APP开发__媒体开发部分__检索元数据

安卓手机APP开发__媒体开发部分__检索元数据 目录 在播放期间 没有播放时 动作照片 在播放期间 媒体的元数据在播放期间能以多种方式来检索。最正常不过的方法 是监听Player.Listener这个监听器的方法onMediaMetadataChanged的事件, 这将提供一个可以使用的Med…

苍穹外卖day1--开发环境搭建

整体结构 前端:管理端(Web) 用户端(小程序) 后端:后端服务(Java) 前端工程基于ngnix运行 启动nginx:双击nginx.exe即可启动nginx服务,访问端口号为80 后端…

Xinstall:实现注册后自动绑定,提升用户体验

在移动互联网时代,App的注册与绑定流程对于用户体验至关重要。繁琐的注册步骤和手动绑定操作往往会让用户望而却步,导致用户流失。为了解决这一问题,Xinstall品牌推出了注册后自动绑定功能,极大提升了用户体验。 Xinstall的自动…

C#语言进阶(一)—委托 第一篇

总目录 C# 语法总目录 系列链接 C#语言进阶(一) 委托 第一篇 C#语言进阶(一) 委托 第二篇 委托 第一篇 委托 第一篇1. 基本用法2.委托作为方法参数3.多播委托 委托 第一篇 委托类似于CPP中的函数指针。它定义了一个方法类型,这个方法类型有返回类型和形参&…

用户的流失预测分析

项目背景 随着电信行业的持续发展,运营商们开始更加关注如何扩大他们的客户群体。研究表明,获取新客户所需的成本要远高于保留现有客户的成本。因此,在激烈的竞争中,保留现有客户成为了一个巨大的挑战。在电信行业中,…

再拓信创版图-Smartbi 与东方国信数据库完成兼容适配认证

近日,思迈特商业智能与数据分析软件 [简称:Smartbi Insight] V11与北京东方国信科技股份有限公司 (以下简称东方国信)CirroData-OLAP分布式数据库V2.14.1完成兼容性测试。经双方严格测试,两款产品能够达到通用兼容性要…

TBWeb开发版V3.2.6免授权无后门Chatgpt系统源码下载及详细安装教程

TBWeb系统是基于 NineAI 二开的可商业化 TB Web 应用(免授权,无后门,非盗版,已整合前后端,支持快速部署)。相比稳定版,开发版进度更快一些。前端改进:对话页UI重构,参考C…

数据可视化(六):Pandas爬取NBA球队排名、爬取历年中国人口数据、爬取中国大学排名、爬取sina股票数据、绘制精美函数图像

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

面试(05)————Redis篇

目录 一、项目中哪些地方使用了redis 问题一:发生了缓存穿透该怎么解决? 方案一:缓存空数据 方案二:布隆过滤器 模拟面试 问题二: 发生了缓存击穿该怎么解决? 方案一:互斥锁 方案二&#xff…

Python数据可视化:频率统计条形图countplot()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 Python数据可视化: 频率统计条形图 countplot() [太阳]选择题 请问关于以下代码表述正确的选项是? import seaborn as sns import matplotlib.pyplot as plt data { …

断言(Assertion)在IT技术中的确切含义— 基于四类典型场景的分析

当“断言”(Assertion)一词成为IT术语时,语义的混沌性和二义性也随之而生。那么,何为断言?断言何为?实际上,只需分析四种典型场景,确切答案和准确描述就将自然显现。 在SAML&#xf…

上海计算机学会2020年7月月赛C++丙组T2感应门

题目描述 感应门会在有人经过的时候自动打开,冷却 d 秒后自动关闭。如果有人在感应门打开的状态下通过,那么冷却时间会重置,重新冷却 d 秒后再关闭。 在一段时间内,有 n 个人陆续通过了感应门,他们通过感应门的时间点…

Scikit-Learn

机器学习中的重要角色 Scikit-Leran(官网:https://scikit-learn.org/stable/),它是一个基于 Python 语言的机器学习算法库。Scikit-Learn 主要用 Python 语言开发,建立在 NumPy、Scipy 与 Matplotlib 之上,…

【python】使用python和selenium实现某平台自动化上传作品的全步骤

第一,我们需要下载python并安装 下载地址:https://www.python.org/downloads/release/python-3123/ 3.x版本的python自带pip工具,因此不需要额外下载。 ModuleNotFoundError: No module named seleniumpip用于下载python适用的各类模块&…