Python实现一个服务端,多个客户端接入

1. 服务器端

服务器端每一次接收客户端连接,都要fork一个进程来完成,如果单纯使用socket模块来实现,是不容易完成多线程接入的。为了方便,可以直接使用socketserver 模块。

代码如下所示。

from socketserver import BaseRequestHandler, ThreadingTCPServerclass Handler(BaseRequestHandler):def handle(self) -> None:address, pid = self.client_addressprint(f'{address} connected!')while True:data = self.request.recv(1024)if len(data) <= 0:print("close!")breakprint(f'receive data: {data.decode()}')self.request.sendall('response'.encode())if __name__ == '__main__':server = ThreadingTCPServer(('127.0.0.1', 8998), Handler)print("Listening")server.serve_forever()

2. 客户端代码

import socketclass Client:def __init__(self):# ipv4  TCPself.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)def connect(self, server_ip, server_port):self.client.connect((server_ip, server_port))def run(self):while True:print("please input:")message = input()self.client.sendall(message.encode())response = self.client.recv(1024)print(response.decode())if __name__ == '__main__':client = Client()client.connect('127.0.0.1', 8998)client.run()

3. 运行效果

客户端1: 输入111

客户端2:输入222

服务器端:

【Socket编程】Python实现一个服务端,多个客户端接入相关推荐

  1. Netty的Socket编程详解-搭建服务端与客户端并进行数据传输

    场景 Netty在IDEA中搭建HelloWorld服务端并对Netty执行流程与重要组件进行介绍: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  2. 【踩坑】cat3.x服务端部署, springboot客户端接入

    [踩坑]cat3.x服务端部署, springboot客户端接入 前言 服务器部署问题 1. 数据库连不上 2. 不要创建server.xml 客户端注册问题 1. client.xml信息错误 2. ...

  3. c# WINFORM SOCKET编程-简单聊天程序(服务端)

    初学C#的SOCKET编程,照着网上的代码写下来,程序总是有问题,经过自己长时间的调试,完成程序,以下是原码,有需要可以参考一下,还不完善,欢迎大家批评指正.(这里的代码没更新,附件重新上传更新,在另 ...

  4. Socket编程实践(6) --TCP服务端注意事项

    僵尸进程处理 1)通过忽略SIGCHLD信号,避免僵尸进程 在server端代码中添加 signal(SIGCHLD, SIG_IGN); 2)通过wait/waitpid方法,解决僵尸进程 sign ...

  5. Python tcp编程,TCP服务端和TCP客户端代码编写

    Python网络编程 两种模式: 一种tcp可靠连接,能够保证数据不丢失 一种udp 不关心数据是否会丢失,在乎传输效率 TCP编程 一点:服务端 二点:客户端 客户端如何连接服务端,保证传输的数据可 ...

  6. c++socket多个客户端通过不同端口与一个服务端通信_手写RPC,深入底层理解整个RPC通信...

    一.前言 RPC,远程过程调用,调用远程方法像调用本地方法一样.RPC交互分为客户端和服务端,客户端调用服务端方法,服务端接收数据并打印到控制台,并response响应给客户端. RPC和HTTP的联 ...

  7. 实现聊天室的功能 :C/C++ socket通信,一个服务端,多个客户端,客户端之间可以群聊

    这是我第一次尝试性的发篇博客,记述我用C/C++ 在Linux环境下socket网络通信,客户端和服务端通信使用包头,包体来解决粘包.以下是我的一些见解,和客户端和服务端的代码.希望可以帮助到同在学习 ...

  8. C++socket编程(三):3.7 服务端回应send客户端数据

    为什么提到反馈send客户端数据,是因为本章博客,目前为止都是单线程的.我们一个服务端只能接收第一个连接进行的客户端发送的数据,在这个客户端断开连接之前,我们的服务端都无法接收其他客户端发过来的数据了 ...

  9. socket编程python实现

    个人博客地址 socket基本概念 socket是基于C/S架构的,也就是说进行socket网络编程,通常需要编写两个py文件,一个服务端,一个客户端. 首先,导入Python中的socket模块: ...

最新文章

  1. Nature指明大脑引流“废液”的确切路径
  2. OpenCV imgcodecs写入的实例(附完整代码)
  3. 一次关于cisco的portfast网络故障
  4. 【机器视觉学习笔记】直方图的绘制及直方图均衡化(C++)
  5. Python str 函数 - Python零基础入门教程
  6. Ext-ajax请求数据
  7. C语言中fgetc函数返回值为什么是int?
  8. Javascript设计模式(三)-- 抽象工厂模式
  9. 了解 object.defineProperty 的基本使用方法(数据双向绑定的底层原理)
  10. 树莓派保持网络连接shell脚本
  11. qqkey获取原理_编译原理(第3版)[刘铭][实验程序源代码]
  12. java web景点规划导航
  13. 日常食物软分类与烹饪方法的思考——预防肥胖
  14. php ligerui 导出excel,LigerUI表格树的使用
  15. uni-app介绍及创建
  16. url wordpress_什么是WordPress中的SEO友好URL结构
  17. 设置网页title标签小图标
  18. iMeta | 华南农大陈程杰/夏瑞等发布TBtools构造Circos图的简单方法
  19. python爬虫五大实例,爬虫初始与PyCharm安装
  20. 2017哈理工 低年级组院赛初赛 G-做游戏 【水题】

热门文章

  1. HTML——3D移动、3D透视、3D效果、3D呈现案例效果
  2. Data()笔记之getDay()的基本用法
  3. 数据结构——图的创建以及遍历
  4. 开游戏服务器要选择什么样的?
  5. TMS28335 XINTF
  6. C++超市商品管理系统设计最新版
  7. 云服务器数据库密码修改zoc,云服务器数据库密码修改zoc
  8. Android项目Jenkins配置(自定义参数构建,构建完成后360加固+自动下载签名+多渠道配置,自动乐固加固+签名,自动上传蒲公英,自动上传OSS,自动发送钉钉消息,自动发送企业微信应用)
  9. iOS开发脚踏实地学习day14-绘图
  10. 阿里iDST NLP负责人司罗:NLP技术怎样一路走到阿里云