多个TCP到串行连接。

2024-09-30 20:23:29 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在尝试创建一个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命令,甚至失败了多个连接到串行。你知道吗


Tags: 数据importclienttruenewcloseonmsg