Попытка Python для нескольких соединений TCP / Serial. - PullRequest
0 голосов
/ 29 июня 2018

Итак, я пытаюсь создать скрипт на 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 даже не работает для нескольких подключений к последовательному порту.

...