Python创建一个TCP服务器

简介: Python创建一个TCP服务器

创建一个TCP服务器

我们想实现一个通过TCP协议同客户端通信的服务器

解决方案

创建TCP服务器的一种简单方式就是利用socketserver库。比如, 下面是一个简单的echo服务示例:

from socketserver import BaseRequestHandler, TCPServer


class EchoHandler(BaseRequestHandler):
    def handle(self):
        print('Got connection from ', self.client_address)
        while 1:
            msg = self.request.recv(8192)
            if not msg:
                break
            self.request.send(msg + ' 欢迎你'.encode('utf-8'))


if __name__ == '__main__':
    serv = TCPServer(('', 20000), EchoHandler)
    serv.serve_forever()

在这份代码中, 我们定义了一个特殊的处理类,它实现了一个handle()方法来服务于客户端连接。这里的request属性就代表着底层的客户端socket, 而client_address中包含了客户端的地址。

要测试这个服务端程序,首先运行这个脚本,然后再打开一个客户端脚本,将其连接到服务端上。示例如下:

from socket import socket, AF_INET, SOCK_STREAM

s = socket(AF_INET, SOCK_STREAM)
s.connect(('localhost', 20000))
s.send('Hello'.encode('utf-8'))
t = s.recv(8192)
print(t.decode('utf-8'))

结果如下:

# 服务器端
D:\Python39\python.exe D:/My_Project/TCP_server.py
D:\Python39\python.exe D:/My_Project/TCP_server.py
Got connection from  ('192.168.1.9', 62719)    # 另一台电脑连接服务端
Got connection from  ('192.168.1.13', 49914)   # 本地机访问服务端
Got connection from  ('192.168.1.13', 49915)
Got connection from  ('192.168.1.13', 49916)

# 客户端
D:\Python39\python.exe D:/My_Project/socket_client.py
Hello 欢迎你

Process finished with exit code 0
相关文章
|
1月前
|
安全 Python
使用Python实现简单的Web服务器
使用Python实现简单的Web服务器
26 6
|
2月前
|
运维 监控 数据库
自动化运维:使用Python脚本实现服务器监控
【8月更文挑战第31天】在这篇文章中,我们将探索如何利用Python编写简单的脚本来实现对服务器的基本监控。通过学习和应用这些技术,你可以快速检测服务器的状态,包括CPU使用率、内存占用和磁盘空间等关键指标。这不仅有助于及时发现问题,还能提升运维效率。文章将逐步引导你理解监控的重要性,并展示如何从零开始构建自己的监控工具。
|
2月前
|
Shell 网络安全 数据安全/隐私保护
使用 Python 远程登陆服务器的最佳实践
使用 Python 远程登陆服务器的最佳实践
|
2月前
|
网络协议 安全 Unix
6! 用Python脚本演示TCP 服务器与客户端通信过程!
6! 用Python脚本演示TCP 服务器与客户端通信过程!
|
1月前
|
网络协议 数据处理 C语言
利用C语言基于poll实现TCP回声服务器的多路复用模型
此代码仅为示例,展示了如何基于 `poll`实现多路复用的TCP回声服务器的基本框架。在实际应用中,你可能需要对其进行扩展或修改,以满足具体的需求。
56 0
|
2月前
|
存储 运维 监控
自动化运维:使用Python脚本进行服务器监控
【8月更文挑战第31天】在数字化时代,服务器的稳定运行对于企业至关重要。本文将介绍如何使用Python编写一个简单的服务器监控脚本,帮助运维人员及时发现并解决潜在问题。我们将从基础的服务器资源监控开始,逐步深入到日志分析与报警机制的实现。通过实际代码示例和操作步骤,使读者能够快速掌握自动化监控的技能,提升工作效率。
|
2月前
|
数据可视化 Python
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
34 0
|
2月前
|
网络协议 API 网络安全
Python远程连接服务器用它就够了
Python远程连接服务器用它就够了
|
1月前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
1天前
|
运维 负载均衡 Linux
阿里云轻量服务器最新收费标准与价格参考
阿里云轻量服务器具有灵活的镜像选择、快速上手、简便运维等优势,轻量服务器适合个人开发者和学生用来搭建网站、云端学习等场景使用,2024年截至目前国内地域有60元/月、80元/月等套餐可选,国外地域有24元/月、34元/月、67元/月等套餐可选,目前轻量应用服务器2核2G3M带宽82元1年、2核4G4M带宽298元1年。