gpt4 book ai didi

python - 如何检查是否从客户端收到字节?

转载 作者:行者123 更新时间:2023-12-03 11:59:08 24 4
gpt4 key购买 nike

我正在创建一个聊天界面,当前,服务器必须先发送一条消息才能使聊天正常进行。

如果客户端首先发送消息,则服务器无法看到该消息,直到服务器向客户端发送消息为止。

我的问题:

  • 如何检查客户端是否向我发送了任何东西?然后,我可以简单地将其打印出来。

  • 这是服务器代码:

    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)


    这是客户端代码:
    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())

    提前致谢!!

    p.s.我希望一个人成为服务器,一个人成为客户端。请不要告诉我让这两个人成为客户。

    最佳答案

    您的服务器是单线程的。 input等待输入,因此在没有用户输入的情况下永远不会进入recv。创建一个线程来读取客户端输入,并创建一个线程来询问和发送消息。在客户端,您将需要类似的东西。

    关于python - 如何检查是否从客户端收到字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60907977/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com