Python 多线程Socket 服务器编程

如果并发量不大的话可以用,毕竟真正的服务器开发还是用Epoll

import socket
import threading


def runThread(*args):
    """

    :param args: args[0]客户端连接的文件描述符,args[1]:客户端的IP地址和端口元祖。
    :return:
    """
    conn = args[0]
    address = args[1]
    while True:
        try:
            data = (conn.recv(1024)).decode("UTF-8")
            print("{}:{} @ 接收到的内容:{}".format(address[0], str(address[1]), data))
            data = str(f"回复内容:{data}")
            conn.send(data.encode("UTF-8"))
        except Exception as e:
            print(f"出现了异常:{e}")
            conn.close()
            break


socket_server = socket.socket()
socket_server.bind(("127.0.0.1", 8888))
socket_server.listen(128)

while True:
    """
    用循环等待客户端连接。
    """
    conn, address = socket_server.accept()
    print(f"接受了客户端的链接:{address[0]}:{address[1]}")
    # 客户端连接上之后创建一个新的线程去处理客户端的发送数据。
    threadHand = threading.Thread(target=runThread, args=(conn, address))
    threadHand.start()

如果代码有不懂的可以在评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值