我正在用Python编写一个服务器,它基本上应该是一些串行设备(比如Arduino)和任何连接到它的客户端之间的管道
import SocketServer
import threading
import errno
def SerialThread():
# Serial init is here
while (True):
msg = read_from_serial(blocking = True)
#print(msg)
try:
server.socket.sendall(str(msg))
except IOError, e:
if e.errno == errno.EPIPE:
print('Server not ready')
serial_daemon = threading.Thread(name='SerialThread', target=SerialThread)
serial_daemon.daemon = True
serial_daemon.start()
class TCPHandler(SocketServer.StreamRequestHandler):
def handle(self):
print('#')
server = SocketServer.TCPServer(('127.0.0.1', 4242), TCPHandler)
print('Starting server')
server.serve_forever()
但我的控制台中不断收到垃圾邮件。那么,我的代码出了什么问题,我该如何修复它呢
TCPServer.socket
处于“侦听”模式,您不能使用它直接传输数据,您需要使用新的套接字对象“连接”到其地址:根据您的服务器处理连接的方式,您可以重复使用相同的套接字,或者在每个循环中创建一个新的套接字
相关问题 更多 >
编程相关推荐