在Python中使用netcat重定向获取数据,发送Ctrl C命令后
我有一个Python脚本,它会在我电脑的4097端口发送数据。我可以通过手动使用netcat这个命令来获取这些数据:
nc -l -p 4097
现在我想在脚本中自动执行这个操作,以检查数据的完整性。所以我在Python中启动netcat,使用以下命令:
os.system("nc -l -p 4097 > C:\v.txt")
然后我尝试从“v.txt”文件中读取我的数据。问题是,数据会在命令执行结束时才被复制到v.txt文件里。因此,我需要发送“Ctrl-C”命令来停止netcat进程,就像我手动操作一样,但我不知道怎么自动做到这一点。
我也不太确定使用netcat将数据重定向到文件的这个方法是否是获取数据的最佳方式,尽管手动操作是有效的……所以如果有任何建议,我会非常感激!谢谢!!
1 个回答
0
这听起来像是需要用到socket模块的工作:
http://docs.python.org/2.7/library/socket.html
你可以这样设置一个简单的socket:
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:", data