Fork me on GitHub

socketserver模块

 

server.py()

复制代码
from socket import *
ip_port = ('127.0.0.1', 8800)
tcp_socket_server = socket()
tcp_socket_server.bind(ip_port)
tcp_socket_server.listen(5)
while 1:
    conn, addr = tcp_socket_server.accept()
    print('客户端',addr)
    while 1:
            client_data = conn.recv(1024)
            print(client_data.decode("utf-8"))
            if client_data.decode("utf-8") == "exit":
                print("客户端断开连接,等待新的用户连接")
                break
            print('接收数据>>>',str(client_data, "utf8"))
            response = input("响应数据>>>")
            conn.sendall(bytes(response, "utf8"))
    conn.close()
复制代码

 

 

多高并发的:

client.py

复制代码
import socket
ip_port = ('127.0.0.1', 8880)
sock = socket.socket()
sock.connect(ip_port)
print("客户端启动:")
while True:
    inp = input('发送数据>>>')
    sock.sendall(bytes(inp, "utf8"))
    if inp == "exit":
        break
    server_response=sock.recv(1024)
    print("服务器响应数据>>>", str(server_response,"utf8"))
复制代码

socker_server.py

复制代码
import socketserver

'''
socketserver使用模式
1 功能类
    class MyServer(socketserver.BaseRequestHandler): #继承这个类
        def handle(self):
            pass
2 server = socketserver.ThreadingTCPServer(('127.0.0.1', 8800), MyServer)

3 server.serve_forever()

'''

class MyServer(socketserver.BaseRequestHandler): #继承这个类
    def handle(self):
        """
        并发的业务逻辑
        conn
        :return:
        """
        while 1:
            client_data = self.request.recv(1024) 
            print(client_data.decode("utf-8"))
            if client_data.decode("utf-8") == "exit":
                print("客户端断开连接,等待新的用户连接")
                break
            print('接收数据>>>',str(client_data, "utf8"))
            response = input("响应数据>>>")
            self.request.sendall(bytes(response, "utf8"))
        self.request.close()
#1 self.socket  2 self.socket.bind()   3 self.socket.listen(5)   (初始化的过程中它帮我们做了这3件事情) 
server = socketserver.ThreadingTCPServer(('127.0.0.1', 8880), MyServer) #封装TCP协议相关的套接字对象
server.serve_forever()
复制代码

这里ThreadingTCPServer是基于TCP, 也有基于UDP的ThreadingUDPServer  ---->>>多线程并发

ForkingTCPServer  ----->>> 多进程并发的,创建的是多进程而不是多线程了

 

 

posted @   kris12  阅读(243)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
levels of contents
点击右上角即可分享
微信分享提示