在Python中,如何用數據行(字符串)填充緩衝區並將其與第二個進程一起使用?這裏有充足的例子來添加和讀取字符串中的行,但我需要從字符串中刪除消耗的行,以使字符串作爲緩衝區來使用。字符串作爲具有多處理訪問權限的發送緩衝區
示例:從串口讀取零星數據並通過TCP/IP將其發送到服務器。在一個循環內逐行並且沒有緩衝=沒有問題,但是在目的地不可達的情況下,數據應該被存儲在緩衝區中並且一旦連接可用就發送。
#!/usr/bin/python
import serial
import socket
from multiprocessing import Process
ip = "someURL"
port = 12345
ser = serial.Serial("/dev/ttyUSB0", 57600, timeout=0)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def serial_reader():
while True:
for line in ser.read():
try:
response = ser.readlines(None)
response = str(response)
message = response[7:]
except:
print datetime.datetime.now(), " No data from serial connection."
##
def data_sender():
s.connect((ip, port))
while True:
for line in queue():
try:
s.send(message)
except:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
continue
except:
s.close()
##
if __name__ == '__main__':
Process(target=serial_reader).start()
Process(target=data_sender).start()