我在C中使用一个应用程序,它将连续数据发送到指定的端口。我可以使用' Putty'来查看传入的数据。 (使用telnet 127.0.0.1端口30003)。
现在我想捕获那些数据进行处理。请在python中建议如何做到这一点?
数据逐行流动,速率为每秒5行。我应该逐行读取数据以进行处理并在窗口中显示它。
答案 0 :(得分:2)
这听起来像是家庭作业......你没有尝试过这样做。
在python中,为了接收和发送数据(并且绝对交换数据),我们使用名为socket
的库。你有两个脚本,一个服务器端(你用C编写)和一个客户端脚本。
import socket, time
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 5000))
while 1:
time.sleep(5) # wait 5 secs.
data = client_socket.recv(512)
if ( data == 'q' or data == 'Q'):
client_socket.close()
break;
else:
print "RECIEVED:" , data
data = raw_input ( "SEND( TYPE q or Q to Quit):" )
if (data <> 'Q' and data <> 'q'):
client_socket.send(data)
else:
client_socket.send(data)
client_socket.close()
break;
这是一个客户端脚本示例,每5秒接收一次数据并打印出来。我希望你能适应它以满足你的需求。
答案 1 :(得分:1)
安装tcpflow
运行给定的脚本
import os
INTERFACE = "lo"
PORT = "30003"
os.system("tcpflow -i %s port %s" % (INTERFACE, PORT))
它会将来到端口的请求写入脚本位置的127.000.000.001.06080-127.000.000.001.6347等文件中