Прошу помочь и строго не судить я новичок.
Создал простое соединение.
Сервер:
import serial import socket ser = serial.Serial('/dev/ttyUSB0', 9600) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind( ("", 14900) ) sock.listen(1) conn, addr = sock.accept() while True: data = conn.recv(1024) if not data: break elif data == "w": ser.write("w") elif data == "s": ser.write("s") elif data == "a": ser.write("a") elif data == "d": ser.write("d") else: ser.write("j") conn.close()
Клиент:
import socket import sys from PyQt4 import QtGui, QtCore host = "Х.Х.Х.Х" port = 14900 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) class Icon(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setGeometry(500, 100, 800, 800) self.setWindowTitle('TEST') self.setWindowIcon(QtGui.QIcon('icons/test.png')) def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_W : sock.send('w') elif event.key() == QtCore.Qt.Key_S : sock.send('s') elif event.key() == QtCore.Qt.Key_A : sock.send('a') elif event.key() == QtCore.Qt.Key_D : sock.send('d') def keyReleaseEvent(self, event): sock.send('j') app = QtGui.QApplication(sys.argv) icon = Icon() icon.show() sys.exit(app.exec_())
Не могу решить задачу передачу данных с сервера на клиент.
Застрял, на сервере считывание данных с COM порта в цикле.
Функция известна и она работает ser.readline(). Не понимаю как 2 цикла запустить на сервере или как поставить условия, что пока нет данных (команд) с клиента считывал и передавал инфу. с com порта.
.