在Python中使用netcat重定向获取数据,发送Ctrl C命令后

0 投票
1 回答
2190 浏览
提问于 2025-04-17 22:56

我有一个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

这个例子是来自这里:https://wiki.python.org/moin/UdpCommunication

撰写回答