String Python 3套接字字符串字节解码
大家好,我试着用Python3构建一个简单的客户机-服务器应用程序,这个应用程序可以正常工作,但我无法将文本格式化回“nomral”字符串。 我总是在打印文本前加上“b”前缀 客户端代码:String Python 3套接字字符串字节解码,string,sockets,python-3.x,byte,decoding,String,Sockets,Python 3.x,Byte,Decoding,大家好,我试着用Python3构建一个简单的客户机-服务器应用程序,这个应用程序可以正常工作,但我无法将文本格式化回“nomral”字符串。 我总是在打印文本前加上“b”前缀 客户端代码: import socket SERVER_PORT = 50007 BUFSIZE = 1024 def main(): host = input("Serveradresse: ") print() print("Narchicht: ") msg = input()
import socket
SERVER_PORT = 50007
BUFSIZE = 1024
def main():
host = input("Serveradresse: ")
print()
print("Narchicht: ")
msg = input()
msg = bytes(msg, 'UTF-8')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, SERVER_PORT))
s.sendall(msg)
print("Sendet")
print()
x = input("Press enter to continue!")
s.close()
if __name__== '__main__':
main()
服务器代码:
import socket
ECHO_PORT = 50007
BUFSIZE = 1024
def main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', ECHO_PORT))
s.listen(1)
print("server Up")
conn, (remotehost, remoteport) = s.accept()
print('Connected with' + remotehost)
data = conn.recv(BUFSIZE)
print("Echo: " + repr(data))
while True:
if data:
data = conn.recv(BUFSIZE)
value = repr(data)
print("Echo: ", value)
s.close()
if __name__== '__main__':
main()
我是舒尔,解决方案很简单,但我不是阿贝尔
谢谢您的帮助。大家好,我解决了这个问题,解决方案代码是:“.join(map(chr,data)),当您从python3中的套接字接收数据时,您会收到字节,而不是字符串。这就是为什么你得到了b前缀。您可以执行b“数据”。解码()或