如何在python中从socket服务器获取完整的字符串而不是一个字节?

y0u0uwnf  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(175)

我在学校有一个项目,所以我需要从用户(客户端)那里得到一个完整的消息,然后我需要对它做一些操作,在这个任务中,作为一个客户端,我从命令行使用windows telnet。所以我只得到一个字节(一个字母),但我需要在“回车”按钮后得到完整的字符串,请帮助我如何做到这一点?

import socket

PORT = 2020
IP = "127.0.0.1"
BUFFER = 2048
MAX_CLIENTS = 10
SHUTDOWN_CODE = 1
CONNECTION_CODE = 1

def listen():
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, CONNECTION_CODE)
connection.bind((IP, PORT))
connection.listen(MAX_CLIENTS)

data = ""
data_str = ""

while True:

    client_socket, address = connection.accept()
    while True:
        data = client_socket.recv(BUFFER)

        data_str = data.decode("utf-8")
        data_str = data_str.strip("/n")
        data_str = data_str.strip("/r")

        if len(data) == 0:
            client_socket.shutdown(SHUTDOWN_CODE)
            client_socket.close()
            print("Disconnected!")
            break

        elif data:
            client_socket.sendall(data)
            print (data_str)

if __name__ == "__main__":
try:
    listen()
except socket.error:
    print("Server Error")

在此处输入图像描述

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题