2014-12-15 25 views
5

Mã của tôi:mô tả tập tin Bad khi sử dụng 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") 

Trước tiên, tôi nhấp vào nút Connect. Nó làm việc, nhưng khi tôi bấm Rẽ trái hoặc rẽ phải, tôi đã nhận ra lỗi:

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 

Trả lời

1

Bạn kết nối btnConnect cho cả connectserverdisconnect, vì vậy khi bạn nhấp vào nó, nó sẽ kết nối và sau đó ngay lập tức ngắt kết nối ổ cắm.

Nếu bạn cố gắng gửi dữ liệu đến một ổ cắm kín, nó sẽ làm tăng lỗi mô tả tệp sai.

+0

Cảm ơn sự giúp đỡ của bạn. :) –

Các vấn đề liên quan