Python 如何打印输入上方的内容?
我正在用套接字做一个消息传递工具 我遇到的一个问题是,您需要输入以获取用户消息 比如说 用户>>你好 用户2>>您好 你>> 当有输入时,您如何接收消息并将其显示在输入上方 因此,如果您收到一条消息,它将是: 用户>>你好 用户2>>您好 用户1>>很高兴认识你 你>> 这是我目前掌握的代码:Python 如何打印输入上方的内容?,python,python-3.x,Python,Python 3.x,我正在用套接字做一个消息传递工具 我遇到的一个问题是,您需要输入以获取用户消息 比如说 用户>>你好 用户2>>您好 你>> 当有输入时,您如何接收消息并将其显示在输入上方 因此,如果您收到一条消息,它将是: 用户>>你好 用户2>>您好 用户1>>很高兴认识你 你>> 这是我目前掌握的代码: import socket import select import errno import sys HEADER_LENGTH = 10 IP = "127.0.0.1" PORT = 1234
import socket
import select
import errno
import sys
HEADER_LENGTH = 10
IP = "127.0.0.1"
PORT = 1234
my_username = input('Username: ')
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((IP,PORT))
client_socket.setblocking(False)
username = my_username.encode("utf-8")
username_header = f"{len(username):<{HEADER_LENGTH}}".encode("utf-8")
client_socket.send(username_header + username)
def send_message():
message = input(f"{my_username} > ")
if message:
message = message.encode("utf-8")
message_header = f"{len(message):<{HEADER_LENGTH}}".encode("utf-8")
client_socket.send(message_header + message)
def receive_message():
try:
while True:
#receive things
username_header = client_socket.recv(HEADER_LENGTH)
if not len(username_header):
print("connection closed by the server")
sys.exit()
username_length = int(username_header.decode("utf-8"))
username = client_socket.recv(username_length).decode("utf-8")
message_header = client_socket.recv(HEADER_LENGTH)
message_length = int(message_header.decode("utf-8"))
message = client_socket.recv(message_length).decode("utf-8")
print(f"{username} > {message}")
except IOError as E:
if E.errno != errno.EAGAIN and E.errno != errno.EWOULDBLOCK:
print('Reading error',str(e))
sys.exit()
except Exception as e:
print('General Error ',str(e))
sys.exit()
running = True
while running:
send_message()
receive_message()
导入套接字
导入选择
输入错误号
导入系统
标题长度=10
IP=“127.0.0.1”
端口=1234
我的用户名=输入('username:'))
client\u socket=socket.socket(socket.AF\u INET,socket.SOCK\u流)
客户端_套接字连接((IP,端口))
客户端\u套接字锁定(错误)
用户名=我的用户名。编码(“utf-8”)
用户名\头=f“{len(用户名):”)
如果消息:
消息=消息编码(“utf-8”)
消息头=f“{len(消息):{message}”)
除IOE错误外:
如果E.errno!=errno.EAGAIN和E.errno!=errno.ewoldblock:
打印('读取错误',str(e))
sys.exit()
例外情况除外,如e:
打印('一般错误',str(e))
sys.exit()
运行=真
运行时:
发送消息()
接收消息()
看看这个答案:看看这个答案: