Python 使用Pyside时文件描述符不正确
我的代码:Python 使用Pyside时文件描述符不正确,python,pyside,Python,Pyside,我的代码: 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.conn
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
您已将
btnConnect
连接到connectserver
和disconnect
,因此当您单击它时,它将连接,然后立即断开套接字
如果您试图将数据发送到关闭的套接字,将引发错误的文件描述符错误。谢谢您的帮助。:)