在 Python3 中发送服务器套接字 newthread 消息
Posted
技术标签:
【中文标题】在 Python3 中发送服务器套接字 newthread 消息【英文标题】:Send server socket newthread message in Python3 【发布时间】:2021-12-29 05:18:06 【问题描述】:我尝试在Python3中运行一个接收和发送消息的套接字服务器的示例程序如下:
from threading import Thread
from socketserver import ThreadingMixIn
class ClientThread(Thread):
m_request = ""
m_answer = ""
def __init__(self,data):
Thread.__init__(self)
self.m_request =data
def run(self):
global QUIT
try:
self.m_answer = textprotocol.processCommand(self.m_request)
except str:
log.save("exception %s"%str)
def answer(self):
return self.m_answer
我正在尝试使用此代码将消息发送回客户端:
newthread = ClientThread(line)
newthread.start()
while newthread.isAlive():
pass
conn.send(newthread.answer()) # echo
newthread.join()
del newthread
newthread = None
我收到以下错误:
Traceback (most recent call last):
conn.send(newthread.answer()) # echo
TypeError: a bytes-like object is required, not 'str'
我不知道在哪里插入encode('utf-8')
以避免此错误。
【问题讨论】:
【参考方案1】:我相信这应该可以解决问题
def answer(self):
return self.m_answer.encode('utf8')
将 self.m_answer 存储为类似对象的字节可能更容易,但在这里转换它应该没问题。
【讨论】:
这似乎行得通! 谢谢!这似乎有效以上是关于在 Python3 中发送服务器套接字 newthread 消息的主要内容,如果未能解决你的问题,请参考以下文章
Python 3套接字客户端发送数据和C++套接字服务器接收偏移数据?