在python中使用Socket服务器循环和等待串行命令?

2024-09-28 13:33:32 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中循环和等待串行命令时出现套接字服务器问题。在

我用python编写了如下服务器代码:

import serial
import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('', 9000))
sock.listen(1)
print "Listening on TCP 9000"
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
print "Connected at: /dev/ttyUSB0"
while(1):
    print "Waiting For Connection..."

    connection, addr = sock.accept() #PROBLEM HERE

    # IF THERE IS NOT CLIENT, PROGRAM CAN NOTO CONTINUE TO NEXT LINE
    print "Connected"

    #SO I CAN NOT CHECK THE COMMAND FROM SERIAL IN THE SAME TIME
    dataFromSerial = ser.readline()
    if dataFromSerial == "ON":
        #SET LED ON

请帮帮我。。。 谢谢。。。在


Tags: thedevimport服务器onserialnotsocket
1条回答
网友
1楼 · 发布于 2024-09-28 13:33:32

设置侦听套接字非阻塞并捕获套接字超时(这显然也可以表现为EAGAINEWOULDBLOCK错误):

import errno
sock.setblocking(False)  # just once, probably right after listen()
try:
    conn, addr = sock.accept()
    # conn accepted
except socket.error as e:
    if e.errno not in (errno.EAGAIN, errno.EWOULDBLOCK):
        raise  # some sort of error we don't recognize; re-raise
    pass  # no connections were pending

相关问题 更多 >

    热门问题