SOCKET建立简单的tcp服务端与客户端通信

socket是什么

socket可以使两台机子建立连接,就像连接风扇与电源的插座一样,socket可以使服务端与客户端建立连接,服务端就像供电厂,而客户端就像用电器,而socket就是连接二者的插座。

建立简单的连接

  1. 如果我们想在客户端与服务端建立连接收发数据就需要分别执行socket方法。
    在这里插入图片描述

  2. 服务端依次执行bind() linten() acctpt()

在这里插入图片描述

  1. 客户端执行connect()请求与服务端连接在这里插入图片描述
  2. 之后服务端与客户端都可以执行send() recv()发送与接收消息

python实现

server

  1. socket()
  2. bind()绑定ip和端口
  3. listen()监听
  4. accept()等待连接。返回新的socket对象(用于收发数据)与addr(存有客户端IP与PORT)
  5. send()/recv()
  6. close()
import socketIP = '0.0.0.0'
PORT = 50000
BUF_LEN = 512listenSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)listenSocket.bind((IP, PORT))listenSocket.listen(5)
print('[*] Socket is listening..')
data, addr = listenSocket.accept()
print('[*] Got connection from', addr)
while True:received_data = data.recv(BUF_LEN)if not received_data:breakinfo = received_data.decode()print(f'[*] Received {info}')data.send(f'服务端收到消息{info}'.encode())data.close()
listenSocket.close()

client

  1. socket()
  2. connect()申请连接
  3. send()/recv()
  4. close()
import socketIP = '127.0.0.1'
PORT = 50000
BUFFER_SIZE = 512dataSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)dataSocket.connect((IP, PORT))while True:toSend = input('Enter a message to send: ')if toSend == '':breakdataSocket.send(toSend.encode())receivedData = dataSocket.recv(BUFFER_SIZE)if not receivedData:breakprint(receivedData.decode())dataSocket.close()

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

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

相关文章

blender笔记2

一、物体贴地 物体->变换->对齐物体 ->对齐弹窗(对齐模式:反方,相对于:场景原点,对齐:z)。 之后可以设置原点->原点--3d游标 二、面上有阴影 在编辑模式下操作过后,物体面有阴影。 数据-&g…

如何正确安装Stable Diffusion Web UI以及对应的xFormers

本文是我总结的步骤,验证了几次保证是对的。因为正确的安装 Stable Diffusion Web UI 以及对应的 xFormers 实在是太麻烦了,官方和网上的步骤都是残缺和分散的,加上国内网络速度不理想,所以需要一些额外步骤,之前研究出…

hive(hdfs)补数脚本

pb级别迁移通常要持续1个月以上。一般的过程是,全量迁移,追平数据,增量同步,校验,补数。 这里的指定补数脚本: 输入需要补数的表,如Input.txt,如果有分区则加补此分区,没…

Android JNI的理解与使用。

写在前面:Java相对于C/C来说是更高级的语言,隐藏了指针,可读性更高,更容易学习,但是无法直接操作硬件、运行速度较慢也是不可回避的硬伤。JNI就是Java官方定义的一套标准“接口”,用于Java和C/C之间互相调用…

如何在Odoo 18中创建记录规则Rule

如何在Odoo 18中创建记录规则Rule 记录规则是管理访问控制的关键,它能让你依据用户角色,定义谁可以在系统内查看、创建或修改特定记录。例如,公司中的普通员工只能查看或修改与与自己直接相关的数据,而经理则有权限访问和编辑所有…

idea 2019.3常用插件

idea 2019.3常用插件 文档 idea 2019.3常用插件idea 2023.3.7常用插件 idea 2019.3常用插件 插件名称插件版本说明1AceJump3.5.9AceJump允许您快速将插入符号导航到编辑器中可见的任何位置。只需按“ctrl;”,键入一个字符,然后在Ace Jump…

Windows网络安全基础

随着互联网的发展和普及,Windows网络安全问题愈发严重。在本文中,我们将会介绍Windows网络安全的基本概念,包括网络攻击类型、网络安全威胁、网络安全防御措施等等,帮助初学者更好地了解Windows网络安全。 一、网络攻击类型 网络…

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1)

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1) Apache Paimon 是一项流式数据湖存储技术,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。 读/写:Paimon 支持多种读/写数据和执行 OLAP 查询的方式。 对于读取&#x…

Node.js 中 cookie-parser 依赖详解

解析 HTTP 请求中的 Cookie 的 Node.js 中间件 一、安装 npm install cookie-parser 二、基本使用 const express require("express");const cookieParser require("cookie-parser");const app express();// 使用 cookie-parser 中间件app.use(cook…

Linux入侵检查流程

1. 初步信息收集 1.1 系统信息 • 目的:了解当前系统的基本情况,包括操作系统版本、内核版本等。 • 命令: cat /etc/redhat-release 1.2 网络信息 目的:查看网络连接状态、开放端口以及防火墙规则,排查异常网络活…

Elasticsearch 混合搜索 - Hybrid Search

作者:来自 Elastic Valentin Crettaz 了解混合搜索、Elasticsearch 支持的混合搜索查询类型以及如何制作它们。 本文是三篇系列文章中的最后一篇,深入探讨了向量搜索(又称语义搜索)的复杂性以及它在 Elasticsearch 中的实现方式。…

本地客户端调用火山方舟 DeepSeek R1API教程

本地第三方AI聊天机器人客户端调用 DeepSeek R1,目前火山云 DeepSeek R1 API 目前测试下高速推理速度,不卡顿,联网搜索能力,可以访问更多联网信息50万免费 tokens,超出后全网最低价。 目录 一、火山方舟 DeepSeek R1A…

华为最新OD机试真题-通过软盘拷贝文件-Python-OD统一考试(E卷)

最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 题目描述 有一名 科学家只 想要从一台古董电脑中拷贝文件到自己的电脑中加以研究。 但此电脑除了有一个3.5寸软盘驱动器以外,没有任何手段可以将文件持贝出来,而且只有一张软盘…

第四十三篇——零和博弈(鞍点理论):如何找到双方的平衡点?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 这篇文章再读依然茅塞顿开;有很多需要自己去吸收的东西&#…

ESP32 ESP-IDF TFT-LCD(ST7735 128x160)自定义组件驱动显示

ESP32 ESP-IDF TFT-LCD(ST7735 128x160)自定义组件驱动显示 🌿驱动参考来源:https://blog.csdn.net/weixin_59250390/article/details/142691848📍个人相关驱动内容文章:《ESP32 ESP-IDF TFT-LCD(ST7735 128x160) LVGL基本配置和使…

请解释一下Standford Alpaca格式、sharegpt数据格式-------deepseek问答记录

1 Standford Alpaca格式 json格式数据。Stanford Alpaca 格式是一种用于训练和评估自然语言处理(NLP)模型的数据格式,特别是在指令跟随任务中。它由斯坦福大学的研究团队开发,旨在帮助模型理解和执行自然语言指令。以下是该格式的…

数据治理中 大数据处理一般都遵循哪些原则

在数据治理中,大数据处理通常遵循以下原则: 最小化原则:企业应只收集实现特定目的所需的数据,避免数据冗余和安全风险。 合法性原则:企业必须遵守相关法律法规,确保数据处理符合法律要求,降低法…

Python 基础-使用dict和set

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 举个例子,假设要根据同学的名字查找对应的成绩&am…

《模式和状态管理》知识总结

一、ECUM 1.1 缩略语 我在这里列出的一些名词的含义只是我在学习过程中自己并不知晓的名词,有其他不会的名词可以自行阅读文档。(会读文档真嘟很重要) Callback:回调函数,由高级的模块提供,由低级的模块…

基于语音的阿尔茨海默病检测识别

摘要 阿尔茨海默病 (AD) 是一种进行性神经退行性疾病,会严重损害认知功能,导致记忆力减退和其他行为改变。它是全球第七大死因,有数百万人受到影响。早期准确检测 AD 对于改善患者预后和减缓疾病进展至关重要。机器学习…