使用Pyside时出现“坏的文件描述符”错误

5

我的代码:

class Receiver(QWidget):
def __init__(self):
    self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #Create button
    QToolTip.setFont(QFont('Time New Roman',10))
    super(Example, self).__init__()
...
self.btnConnect.clicked.connect(self.connectserver)
    self.btnConnect.clicked.connect(self.disconnect)
    self.btnLeft.clicked.connect(self.turnleft)
    self.btnRight.clicked.connect(self.turnright)
def connectserver(self):
    self.s.connect((TCP_IP, TCP_PORT))
    length = recvall(conn,16)
    stringData = recvall(s, int(length))
    while True:
        data = numpy.fromstring(stringData, dtype='uint8')
        decimg=cv2.imdecode(data,1)
        cv2.imshow('Client',decimg)
        cv2.waitKey(10)
def disconnect(self):
    self.s.close()
def turnleft(self):
    self.s.send("left")
def turnright(self):
    self.s.send("right")

首先,我点击连接按钮。它能够正常工作,但是当我点击向左或向右转动时,出现了错误:

Traceback (most recent call last):
  File "D:\NEW\GUI.py", line 69, in turnright
    self.s.send("right")
  File "C:\Python27\lib\socket.py", line 170, in _dummy
    raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor
1个回答

1
你将 btnConnect 同时连接到 connectserver disconnect ,因此当你单击它时,它会连接然后立即断开套接字。
如果您尝试向关闭的套接字发送数据,则会引发坏文件描述符错误。

感谢您的帮助。 :) - Trần Duy Linh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接