TCP socket编程
一、服务端代码
#encoding = utf -8
#导入socket库
from socket import *
#等待客户端来连接,主机地址为0.0.0.0表示绑定本机所有网络接口ip地址
IP = '0.0.0.0'
#端口号
PORT = 50000
#定义一次从socket缓存区最多读入512个字节数据
BUFLEN = 512
#实例化一个socket编程
#参数AF_INET 表示该socket网络层使用IP协议
#参数SOCK_STREAM表示该socket传输层使用tcp协议
listenSocket = socket(AF_INET, SOCK_STREAM)
#socket 绑定地址和端口
listenSocket.bind((IP, PORT))
#使socket处于监听状态,等待客户端连接请求
#参数5表示 最多接受多少个等待连接的客户端
listenSocket.listen(5)
print(f"服务端启动成功,在{PORT} 端口等待客户端连接 ……")
dataSocket, addr = listenSocket.accept()
print("接受一个客户端连接: ", addr)
while True:
#尝试读取对方发送的消息
# BUFLEN 指定从接受缓冲里最多读取多少字节
recved = dataSocket.rec(BUFLEN)
#如果返回空Bytes,表示对方关闭了连接
#退出循环,结束消息收发
if not recved:
break
#读取的字节数据是Bytes类型,需要解码为字符串
info = recved.decode()
print(f"收到对方消息: {info}")
#发送的数据类型必须的bytes,所以需要编码
dataSocket.send(f"服务端接收了信息 {info}".encode())
#服务端调用close()关闭socket
dataSocket.close()
listenSocket.close()
二、客户端代码
#encoding = utf -8
#导入socket库
from socket import *
IP = '127.0.0.1'
SERVER_PORT = 50000
BUFLEN = 512
#实例化一个socket编程,指明协议
dataSocket = socket(AF_INET, SOCK_STREAM)
#连接服务端socket
dataSocket.connect((IP, SERVER_PORT))
while True:
#从终端读入用户输入的字符串
toSend = input(" >> ")
if toSend == "":
break
#发送消息,编码为bytes
dataSocket.send(toSend.encode())
#等待接收服务端的消息
recved = dataSocket.recv(BUFLEN)
#如果返回空Bytes,表示对方关闭了连接
if not recved:
break
#打印读取的消息
print(recved.decode())
dataSocket.close()
相关文章:
TCP socket编程
一、服务端代码 #encoding utf -8 #导入socket库 from socket import * #等待客户端来连接,主机地址为0.0.0.0表示绑定本机所有网络接口ip地址 IP 0.0.0.0 #端口号 PORT 50000 #定义一次从socket缓存区最多读入512个字节数据 BUFLEN 512 #实例化一个socket编程…...
HTTP——一、了解Web及网络基础
HTTP 一、使用HTTP协议访问Web二、HTTP的诞生1、为知识共享而规划Web2、Web成长时代3、驻足不前的HTTP 三、网络基础TCP/IP1、TCP/IP协议族2、TCP/IP的分层管理3、TCP/IP 通信传输流 四、与HTTP关系密切的协议:IP、TCP和DNS1、负责传输的 IP 协议2、确保可靠性的TCP…...
[论文笔记] chatgpt系列 2.6 DeepSpeed-chat 数据集
一、FT数据集 & Reward model数据集 Deepspeed-chat 源代码的数据集: Dahoas/rm-static: 这是一个用于强化学习的静态环境数据集,包含了一个机器人在一个固定环境中的运动轨迹。该数据集旨在用于评估强化学习算法在静态环境下的表现。 Dahoas/full-hh-rlhf: 这是一个用于…...
探究SAM和眼球追踪技术在自动医学图像分割的应用(2023+GazeSAM: What You See is What You Segment)
摘要: 本研究探讨眼动追踪技术与SAM的潜力,以设计一个协同的人机交互系统,自动化医学图像分割。提出了GazeSAM系统,使放射科医生能够在图像诊断过程中通过简单地查看感兴趣的区域来收集分割掩模。该系统跟踪放射科医生的眼球运动…...
excle中的条件求和SUMIF
问题:将每一行中红色文字的前一个值累计求和到境外总数这一列 使用的公式 自制单元格的格式计算公式:ctrlf3打开格式管理,创建如下公式,其中24是表示获取文字颜色 由于sumif只能直接与第二参数条件比较,所以先使用IF(公…...
python-网络爬虫.Request
Request python中requests库使用方法详解: 一简介: Requests 是Python语言编写,基于urllib, 采用Apache2 Licensed开源协议的 HTTP 库。 与urllib相比,Requests更加方便,处理URL资源特别流畅。 可以节约我…...
时序预测 | MATLAB实现GRNN广义回归神经网络时间序列预测(多指标,多图)
时序预测 | MATLAB实现GRNN广义回归神经网络时间序列预测(多指标,多图) 目录 时序预测 | MATLAB实现GRNN广义回归神经网络时间序列预测(多指标,多图)效果一览基本介绍程序设计参考资料效果一览 基本介绍 1.MATLAB实现GRNN广义回归神经网络时间序列预测(完整源码和数据) …...
如何看待低级爬虫与高级爬虫?
爬虫之所以分为高级和低级,主要是基于其功能、复杂性和灵活性的差异。根据我总结大概有下面几点原因: 功能和复杂性:高级爬虫通常提供更多功能和扩展性,包括处理复杂页面结构、模拟用户操作、解析和清洗数据等。它们解决了开发者…...
3.分支与循环
一、分支结构 1.概念 一个 CPP 程序默认是按照代码书写顺序,从上到下依次执行下来的。但是,有时我们需要选择性的执行某些语句,来实现更加复杂的逻辑,这时候就需要分支结构语句的功能来实现。选择合适的分支语句可以显著提高程序…...
面试之多线程案例(四)
1.单例模式 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。…...
抄写Linux源码(Day1:获取并运行 Linux0.11)
Day1:获取并运行 Linux0.11 参考资料:https://zhuanlan.zhihu.com/p/438577225 这是我参考的一个别人写的 Linux0.11 解读:https://github.com/dibingfa/flash-linux0.11-talk 我获取 Linux-0.11 源码的链接:https://github.com/…...
大数据_Hadoop_Parquet数据格式详解
之前有面试官问到了parquet的数据格式,下面对这种格式做一个详细的解读。 参考链接 : 列存储格式Parquet浅析 - 简书 Parquet 文件结构与优势_parquet文件_KK架构的博客-CSDN博客 Parquet文件格式解析_parquet.block.size_davidfantasy的博客-CSDN博…...
Docker的安装和部署
目录 一、Docker的安装部署 (1)关闭防火墙 (2)关闭selinux (3)安装docker引擎 (4)启动docker (5)设置docker自启动 (6)测试doc…...
FPGA项目实现:秒表设计
文章目录 项目要求项目设计 项目要求 设计一个时钟秒表,共六个数码管,前两位显示分钟,中间两位显示时间秒,后两位显示毫秒的高两位,可以通过按键来开始、暂停以及重新开始秒表的计数。 项目设计 为完成此项目共设计…...
Postgresql源码(109)并行框架实例与分析
1 PostgreSQL并行参数 系统参数 系统总worker限制:max_worker_processes 默认8 系统总并发限制:max_parallel_workers 默认8 单Query限制:max_parallel_workers_per_gather 默认2 表参数限制:parallel_workers alter table tbl …...
ES派生类的prototype方法中,不能访问super的解决方案
1 下面的B.prototype.compile方法中,无法访问super class A {compile() {console.log(A)} }class B extends A {compile() {super.compile()console.log(B)} }B.prototype.compile function() {super.compile() // 报错,不可以在此处使用superconsole.…...
使用adb通过电脑给安卓设备安装apk文件
最近碰到要在开发板上安装软件的问题,由于是开发板上的安卓系统没有解析apk文件的工具,所以无法通过直接打开apk文件来安装软件。因此查询各种资料后发现可以使用adb工具,这样一来可以在电脑上给安卓设备安装软件。 ADB 就是连接 Android 手…...
113、单例Bean是单例模式吗?
单例Bean是单例模式吗? 通常来说,单例模式是指在一个JVM中,一个类只能构造出来一个对象,有很多方法来实现单例模式,比如懒汉模式,但是我们通常讲的单例模式有一个前提条件就是规定在一个JVM中,那如果要在两个JVM中保证单例呢?那可能就要用分布式锁这些技术,这里的重点…...
RabbitMQ 集群部署
RabbiMQ 是用 Erlang 开发的,集群非常方便,因为 Erlang 天生就是一门分布式语言,但其本身并不支持负载均衡。 RabbitMQ 的集群节点包括内存节点、磁盘节点。RabbitMQ 支持消息的持久化,也就是数据写在磁盘上,最合适的方案就是既有内存节点,又有磁盘节点。 RabbitMQ 模式大…...
2023年【零声教育】13代C/C++Linux服务器开发高级架构师课程体系分析
对于零声教育的C/CLinux服务器高级架构师的课程到2022目前已经迭代到13代了,像之前小编也总结过,但是课程每期都有做一定的更新,也是为了更好的完善课程跟上目前互联网大厂的岗位技术需求,之前课程里面也包含了一些小的分支&#…...
Visual C++ Redistributable开源项目故障排除终极指南:从问题诊断到系统优化
Visual C Redistributable开源项目故障排除终极指南:从问题诊断到系统优化 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 开源项目故障排除是开发者…...
Qwen3-TTS-12Hz-1.7B-CustomVoice惊艳效果:葡萄牙语足球解说+俄语天气预报语音集
Qwen3-TTS-12Hz-1.7B-CustomVoice惊艳效果:葡萄牙语足球解说俄语天气预报语音集 1. 多语言语音合成的突破性进展 语音合成技术正在经历一场革命性的变革,而Qwen3-TTS-12Hz-1.7B-CustomVoice无疑是这场变革中的佼佼者。这个模型不仅在技术架构上实现了重…...
3个技巧快速解锁百度网盘SVIP下载特权
3个技巧快速解锁百度网盘SVIP下载特权 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾因百度网盘Mac版的下载速度而苦恼?普通用户下…...
别再死记硬背!用拖拽和右键菜单玩转汇川CodeSys网络与硬件组态
汇川CodeSys图形化组态实战:拖拽与右键菜单的高效玩法 第一次打开汇川CodeSys的组态界面时,那些密密麻麻的菜单和复杂的参数设置确实让人望而生畏。但当我发现可以用鼠标拖拽完成90%的配置工作时,整个PLC编程体验彻底改变了——就像从DOS命令…...
Huey终极指南:为什么这个轻量级Python任务队列成为开发者的首选?
Huey终极指南:为什么这个轻量级Python任务队列成为开发者的首选? 【免费下载链接】huey a little task queue for python 项目地址: https://gitcode.com/gh_mirrors/hu/huey 在Python开发世界中,高效处理异步任务和定时任务是提升应用…...
IAR平台华大HC32F460工程搭建避坑指南:从零到调试成功的全流程解析
1. 从KEIL到IAR的转型背景 最近两年芯片市场的价格波动,让很多工程师不得不重新评估开发工具链的选择。我作为一个用了五年KEIL的老用户,最近也被迫开始学习IAR平台。原因很简单——当ST单片机价格涨到华大HC32F460的十倍时,任何成本敏感的项…...
百川2-13B中文优势:OpenClaw在本地化办公场景中的特殊优化技巧
百川2-13B中文优势:OpenClaw在本地化办公场景中的特殊优化技巧 1. 为什么选择百川2-13B处理中文办公文档 去年我在整理团队季度报告时,曾尝试用多个开源模型处理中文PDF和微信群聊记录。当通用英文模型遇到中文标点符号和行业术语时,要么漏…...
SAM 3实操手册:分割掩码生成STL网格用于3D打印前处理
SAM 3实操手册:分割掩码生成STL网格用于3D打印前处理 1. 引言 你是否遇到过这样的问题:想要3D打印一个实物,但手头只有一张照片?或者想要从复杂的背景中提取出特定物体进行三维重建?传统的方法需要手动抠图、建模&am…...
【网络】Wireshark实战:TCP连接异常之RST报文深度解析
1. 认识TCP的RST报文:网络世界的紧急刹车 第一次在Wireshark里看到RST标志位时,我正盯着满屏的TCP握手包发呆。那个鲜红的[RST, ACK]就像交通信号灯突然变红,让原本流畅的数据传输戛然而止。简单来说,RST(Reset&#x…...
G-Helper:华硕ROG笔记本性能调校的轻量级解决方案
G-Helper:华硕ROG笔记本性能调校的轻量级解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: h…...
