Python 从服务器获取响应

Python 从服务器获取响应,python,python-3.x,sockets,connection,Python,Python 3.x,Sockets,Connection,我正在尝试制作一个服务器-客户机程序,在这个程序中,服务器将侦听客户机的消息,并根据消息做出响应。我从客户端发送一条包含用户名和内容的消息,服务器接受并打印一条消息发送给客户端,直到一切正常。但在发送消息时,服务器会抛出错误: `TypeError: byte indices must be integers or slices, not str` 看起来这条线是个问题,但我不确定 `clientsocket.send(msg['header'] + msg['data'])` 这是一个完

我正在尝试制作一个服务器-客户机程序,在这个程序中,服务器将侦听客户机的消息,并根据消息做出响应。我从客户端发送一条包含用户名和内容的消息,服务器接受并打印一条消息发送给客户端,直到一切正常。但在发送消息时,服务器会抛出错误:

 `TypeError: byte indices must be integers or slices, not str`
看起来这条线是个问题,但我不确定

`clientsocket.send(msg['header'] + msg['data'])`
这是一个完整的服务器代码。请让我知道,如果客户代码也是必要的,请

导入套接字 导入时间 进口泡菜 导入选择 HEADERSIZE=10 IP=127.0.0.1 端口=1234 s=socket.socketsocket.AF_INET,socket.SOCK_流 s、 setsockoptsocket.SOL_插座,插座.SO_REUSEADDR,1 s、 bindIP,端口 s、 听 套接字\u列表=[s] 客户端={} 处理消息接收 def接收_消息客户端套接字: 尝试: 消息头=clientsocket.recvHEADERSIZE 如果没有,请选择消息头: 返回错误 消息长度=intmessage头。解码“utf-8”。条带 返回{'header':消息头,'data':clientsocket.recvmessage_length} 除: 返回错误 尽管如此: 读取插槽,异常插槽=选择。选择插槽列表,[],插槽列表 对于read_插槽中的通知_插槽: 如果通知_socket==s: clientsocket,地址=s.accept user=receive_messageclientsocket 如果用户为False: 持续 sockets\u list.appendclientsocket 客户端[clientsocket]=用户 已建立来自{address[0]}:{address[1]}的printfConnection!用户:{User['data'].解码'utf-8'} 其他: 消息=接收消息通知套接字 如果消息为False: printfClose连接来自{客户端[通知的_套接字]['data']。解码'utf-8'} 套接字\u列表。重新指定的\u套接字 del客户端[已通知的\u套接字] 持续 用户=客户端[已通知的\u套接字] message_decoded=message['data']。解码'utf-8' printf'从{user[data].decodeutf-8}:{message[data].decodeutf-8}收到消息' 对于客户端中的clientsocket: 如果clientsocket==通知的\u套接字: 如果消息[data].decodeutf-8==y: d={1:嘿,2:那里} msg=pickle.dumpsth.jpeg printmsg msg=bytesf'{lenmsg:msg=pickle.dumpsth.jpeg将字符串th.jpeg编码为字节对象。
msg=bytesf'{lenmsg:谢谢!这一次,有一个客户端的代码解码错误,但我想我能处理它,谢谢!
clientsocket.send(msg)