如何解决对 NetfilterQueue 延迟函数使用多重处理
我无法对 Netfilter 队列使用多处理。代码和错误如下:
错误: 类型错误:print_and_accept() 缺少 1 个必需参数:'pkt'
nfqueue = NetfilterQueue()
nfqueue.bind(1,print_and_accept)
try:
nfqueue.run()
except KeyboardInterrupt:
print('')
global a
time.sleep(ransecs)#ADD DELAY calculated by delay_calc()
print(pkt)
pkt.accept()
#delay_calc()
nfqueue.unbind()
p2 = multiprocessing.Process(target=print_and_accept())
if __name__ == '__main__':
p2.start()```
解决方法
多处理库给出了这个例子:
p = Process(target=f,args=('bob',))
由于 Process 类的格式化方式,您必须将多处理行更改为:
p2 = multiprocessing.Process(target=print_and_accept,args=('args',))
问题出在函数引用后面加括号,调用函数导致报错。删除这些并根据需要添加参数(以元组的形式)应该可以解决您的问题。
在下方评论任何问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。