使用python实现socket进行消息传输-demo

Socket 是什么

Socket 是一种在计算机网络中用于实现进程间通信的一种机制。它是网络编程中的重要概念,通过它可以在不同的计算机之间进行数据传输和通信。Socket 可以用于实现各种网络应用,包括客户端-服务器模型、P2P 应用等。基本上,Socket 允许不同计算机上的进程通过网络进行通信,从而实现数据交换和协作。

更多详细知识点可以看

https://segmentfault.com/a/1190000041413541#item-3
添加链接描述

服务端代码

import socket
import sys
import threadingdef send_msg(client_socket):#发送数据while True:message = input()if message == 'close':client_socket.close()sys.exit(0)else:client_socket.sendall(message.encode())print('服务端:', message)def rece_msg(client_socket):# 接收响应while True:data = client_socket.recv(1024)print('客户端:', data.decode())def server_client():# 创建一个TCP/IP套接字client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 服务地址server_addr = ('localhost', 8888)# 绑定套接字到端口client_socket.bind(server_addr)client_socket.listen(3)# 等待客户端连接clientsocket, addr = client_socket.accept()return clientsocketif __name__ == '__main__':client_socket = server_client()# 发送消息send_msg = threading.Thread(target=send_msg, args=(client_socket,))send_msg.start()#接收消息rece_msg = threading.Thread(target=rece_msg, args=(client_socket,))rece_msg.start()

客户端代码

import socket
import sys
import threadingdef send_msg(client_socket):#发送数据while True:message = input()if message == 'close':client_socket.close()sys.exit(0)else:client_socket.sendall(message.encode())print('客户端:', message)def rece_msg(client_socket):# 接收响应while True:data = client_socket.recv(1024)print('服务端:', data.decode())if __name__ == '__main__':# 创建一个TCP套接字client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接服务器server_addr = ('localhost', 8888)client_socket.connect(server_addr)# 发送消息send_msg = threading.Thread(target=send_msg, args=(client_socket,))send_msg.start()# 接收消息rece_msg = threading.Thread(target=rece_msg, args=(client_socket,))rece_msg.start()

在这里插入图片描述

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

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

相关文章

Java面向对象-常用类 (包装类)

常用类 – 包装类 基本数据类型的包装类 理解:包装类是8种基本数据类型对应的类 出现原因:Java是一种纯面向对象语言,但是java中有8种基本数据类型,破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象,java…

16. Elasticsearch面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 什么是Elasticsearch? Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎。 Elasticsearch是用Java开发的,根据Apache许可条款作为开源发布…

安全生产月答题pk小程序怎么做

在当今信息化时代,小程序已成为人们日常生活和工作中不可或缺的一部分。特别是在安全生产领域,通过小程序进行答题PK活动,不仅可以提高员工的安全意识,还能促进团队间的协作与交流。本文将详细介绍如何制作一款安全生产月答题PK小…

物体检测算法-R-CNN,SSD,YOLO

物体检测算法-R-CNN,SSD,YOLO 1 R-CNN2 SSD3 Yolo总结 1 R-CNN R-CNN(Region-based Convolutional Neural Network)是一种基于区域的卷积神经网络,是第一个成功将深度学习应用到目标检测上的算法。它主要由三个步骤组…

8操作系统定义、分类及功能+设备管理+作业管理 软设刷题 软考+

操作系统定义、分类及功能设备管理作业管理 知识点1-55-1010-1515-2020-2525-3030-35 刷题操作系统定义、分类及功能1-55-1010-15作业管理1-5设备管理1-55-10 知识点 1-5 1 嵌入式操作系统的特点: 1.微型化,从性能和成本角度考虑,希望占用的…

盲人社区生活支持体系:织就一张温暖的网

在当今社会,构建一个全面、包容的盲人社区生活支持体系成为了推动社会进步、保障残障人士权益的重要议题。随着科技的不断革新,一款名为“蝙蝠避障”的辅助软件走进了盲人的日常生活,它如同一位无形的向导,通过实时避障与拍照识别…

关于基础的流量分析(1)

1.对于流量分析基本认识 1)简介:网络流量分析是指捕捉网络中流动的数据包,并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。 2)在我们平时的考核和CTF比赛中,基本每次都有…

线程的概念和控制

文章目录 线程概念线程的优点线程的缺点线程异常线程用途理解虚拟地址 线程控制线程的创建线程终止线程等待线程分离封装线程库 线程概念 什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一…

VMware虚拟机安装Windows server 2022超详细教程

文章目录 ISO下载安装步骤总结 ISO下载 链接:https://pan.baidu.com/s/19Z2q9KFKZq0pLisPZLn7_g 提取码:3pgn 安装步骤 安装完打开虚拟机后发现引导程序无法正常执行 解决方法见我的上一篇文章:http://t.csdnimg.cn/PzfOz 问题解决完后正常…

计算机毕业设计 | node.js(Express)+vue影院售票商城 电影放映购物系统(附源码+论文)

1,绪论 1.1 项目背景 最近几年,我国影院企业发展迅猛,各大电影院不断建设新的院线,每年新投入使用的荧幕数目逐年显著上升。这离不开人们的观影需求及对观影的过程要求的不断进步。广大观影消费者需要知道自己的空闲时间&#x…

P1【知识点】【数据结构】【链表LinkedList】C++版

链表是一种逻辑上连续,内存上分散的线性表数据结构,是用一组任意的空间(可以连续,也可以不连续)来存放数据元素。每个数据元素成为一个”结点“,每个结点由数据域和指针域组成。 访问元素(Acce…

保护共享资源的方法(互斥锁)

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

工厂模式(简单工厂模式+工厂模式)

工厂模式的目的就是将对象的创建过程隐藏起来,从而达到很高的灵活性,工厂模式分为三类: 简单工厂模式工厂方法模式抽象工厂模式 在没有工厂模式的时候就是,客户需要一辆马车,需要客户亲自去创建一辆马车,…

向上调整建堆与向下调整建堆的时间复杂度 AND TopK问题

目录 前言建堆的时间复杂度TOPK问题总结 前言 本篇旨在介绍使用向上调整建堆与向下调整建堆的时间复杂度. 以及topk问题 博客主页: 酷酷学!!! 感谢关注~ 建堆的时间复杂度 堆排序是一种优于冒泡排序的算法, 那么在进行堆排序之前, 我们需要先创建堆, 为什么说堆排序的是优于…

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现: 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性,并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…

Ubuntu 20/22 安装 Jenkins

1. 使用 apt 命令安装 Java Jenkins 作为一个 Java 应用程序,要求 Java 8 及更高版本,检查系统上是否安装了 Java。 sudo apt install -y openjdk-17-jre-headless安装完成后,再次验证 Java 是否已安装 java --version2. 通过官方存储库安…

15:00面试,15:08出来,面试问的有点变态。。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天…

第10章 数据聚合与分组运算

以下内容参考自https://github.com/iamseancheney/python_for_data_analysis_2nd_chinese_version/blob/master/%E7%AC%AC05%E7%AB%A0%20pandas%E5%85%A5%E9%97%A8.md 《利用Python进行数据分析第2版》 用以学习和记录。 对数据集进行分组并对各组应用一个函数(无论…

Dubbo生态之dubbo功能

1.Dubbo生态功能的思考 dubbo具有哪些功能呢?我们要根据dubbo的架构和本质是用来干什么的来思考? 首先对于分布式微服务,假设我们有两个服务A和B,并且都是集群部署的。那么按照我们正常的流程应该是启动两个微服务项目(启动时应该…

vscode添加代办相关插件,提高开发效率

这里写目录标题 前言插件添加添加TODO Highlight安装TODO Highlight在项目中自定义需要高亮显示的关键字 TODO Tree安装TODO Tree插件 单行注释快捷键 前言 在前端开发中,我们经常会遇到一些未完成、有问题或需要修复的部分,但又暂时未完成或未确定如何处…