首页 > 解决方案 > 如何用python socket制作多线程聊天系统

问题描述

我正在制作一个聊天系统,目前我一次只能发送一条消息。有人告诉我这是因为我的聊天服务器是单线程的,这是有道理的。

有人可以生成一些伪代码来帮助我理解如何进行多线程聊天吗?

这是服务器代码:

import socket
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(("", 8080))
serv.listen(5)
while True:
    c, addr = serv.accept()

    print("Connection recieved from", addr)
    while True:
        strig = str(input("Enter your message to the client: "))
        c.send(strig.encode())

        thing = c.recv(1024)
        message = list(str(thing))
        message.remove("b")
        printable = ""

        for item in message:
            printable += item
        print(printable)

        strig = str(input("Enter your message to the client: "))
        c.send(strig.encode())

        thing = c.recv(1024)
        message = list(str(thing))
        message.remove("b")
        printable = ""

        for item in message:
            printable += item
        print(printable)

这是客户端代码:

import socket
from time import sleep
s = socket.socket()

port = 8080

s.connect(("10.0.0.92", port))
while True:
    thing = str(s.recv(1024))
    message = list(thing)
    message.remove("b")
    #message.remove("/")
    printable = ""
    for item in message:
        printable += item
    print(printable)

    your = str(input("Enter your message to the server: "))
    s.send(your.encode())

    thing = str(s.recv(1024))
    message = list(thing)
    message.remove("b")
    #message.remove("/")
    printable = ""
    for item in message:
        printable += item
    print(printable)

    your = str(input("Enter your message to the server: "))
    s.send(your.encode())

提前致谢!!

ps 我希望其中一个人成为服务器,一个人成为客户端。请不要告诉我让他们成为两个客户。

标签: pythonpython-3.xsocketspython-sockets

解决方案


推荐阅读