2014-12-15 27 views
5

Il mio codice:descrittore di file inappropriato quando si utilizza 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.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") 

In primo luogo, clicco pulsante Connetti. Ha funzionato, ma quando clicco girare a sinistra oa girare a destra, ho ottenuto un errore:

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 

risposta

1

connesso btnConnect sia connectserver e disconnect, in modo che quando si fa clic su di esso, si collegherà e poi scollegare immediatamente la presa.

Se si tenta di inviare dati a un socket chiuso, verrà generato un errore descrittore di file non valido.

+0

Grazie per il vostro aiuto. :) –

Problemi correlati