Итак, я пытаюсь создать скрипт на python, который будет разрешать множественные TCP-соединения с разных компьютеров и позволять говорить через последовательный порт от TCP-клиента. Вот что я играл с
import sys
import os
import time
import fileinput
import socket
import serial
import thread
serialData = serial.Serial('/dev/ttyS0',9600)
import argparse
def on_new_client(clientsocket,addr):
while True:
msg = clientsocket.recv(1024)
#do some checks and if msg == someWeirdSignal: break:
print addr, ' >> ', msg
serialData.write(msg)
#msg = raw_input('SERVER >> ')
#Maybe some code to compute the last digit of PI, play game or
anything else can go here and when you are done.
clientsocket.send(msg)
clientsocket.close()
def on_Send_client(clientsocket,addr):
while True:
x = serialData.readline()
clientsocket.send(x)
clientsocket.close()
s = socket.socket()
host = '' #ip of raspberry pi
port = 12345
s.bind((host, port))
s.listen(5)
serialData.isOpen()
serialData.write("This is a test")
while True:
c, addr = s.accept()
thread.start_new_thread(on_new_client,(c,addr))
#thread.start_new_thread(on_Send_client,(c,addr))
s.close()
Прямо сейчас я могу подключиться к нескольким TCP-клиентам и сохранить их данные. Их данные также отправляются через последовательный порт. Как я должен идти о буферизации последовательных данных и отправке их обратно любым активным соединениям? Кажется, что ничего, что я ищу в Интернете, не может сделать это правильно, и команда Socat даже не работает для нескольких подключений к последовательному порту.