栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python ThreadingTCPServer创建通信程序

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python ThreadingTCPServer创建通信程序

在 ThreadingTCPServer 实现的套接字服务器内部,会为每一个客户端创建一个“线程”,该线程用来和客户端进行交互。

在 Python 程序中,使用 ThreadingTCPServer 的步骤如下:

  1. 创建一个继承自 SocketServer.BaseRequestHandler 的类;
  2. 在类中定义一个名为 handle() 的方法;
  3. 启动 ThreadingTCPServer。

下面的实例代码演示了使用 ThreadingTCPServer 创建“客户端/服务器端”通信程序的过程。

实例文件 ser.py 的功能是使用 socketserver 模块创建服务器端程序,该程序能够将收到的信息直接发回到客户端。文件 ser.py 的具体实现代码如下。

python代码

import socketserver
class Myserver(socketserver.BaseRequestHandler):
    def handle(self):
        conn = self.request
        conn.sendall(bytes("你好,我是机器人",encoding="utf-8"))
        while True:
            ret_bytes = conn.recv(1024)
            ret_str = str(ret_bytes,encoding="utf-8")
            if ret_str == "q":
                break
            conn.sendall(bytes(ret_str+"你好我好大家好",encoding="utf-8"))
if __name__ == "__main__":
    server = socketserver.ThreadingTCPServer(("127.0.0.1",8000),Myserver)
    server.serve_forever()

 

实例文件 cli.py 的功能是使用 socketserver 模块创建客户端程序,该程序能够接收服务器端发送的信息。文件 cli.py 的具体实现代码如下。

import socket
obj = socket.socket()
obj.connect(("127.0.0.1",8000))
ret_bytes = obj.recv(1024)
ret_str = str(ret_bytes,encoding="utf-8")
print(ret_str)
while True:
    inp = input("你好请问您有什么问题? n >>>")
    if inp == "q":
        obj.sendall(bytes(inp,encoding="utf-8"))
        break
    else:
        obj.sendall(bytes(inp, encoding="utf-8"))
        ret_bytes = obj.recv(1024)
        ret_str = str(ret_bytes,encoding="utf-8")
        print(ret_str)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号