如何模拟套接字库';python中的recvfrom?
我有以下python代码(sniffer.py),用于嗅探数据包如何模拟套接字库';python中的recvfrom?,python,sockets,unit-testing,mocking,packet-sniffers,Python,Sockets,Unit Testing,Mocking,Packet Sniffers,我有以下python代码(sniffer.py),用于嗅探数据包 import socket def get_packet(): #create an INET, raw socket s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) #current_interval and conf_interval are read here. where current_interv
import socket
def get_packet():
#create an INET, raw socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
#current_interval and conf_interval are read here. where current_interval is a difference of time.time and the time at which program began. and conf_interval is pre-configured interval
# receive a packet
while current_interval < conf_interval:
pkt = s.recvfrom(65565)
process(pkt)
if __name__ == '__main__':
get_packet()
这只是给了我一个模拟对象,我无法访问虚拟的pkt。
我该怎么做
谢谢
sniffer.py
和你写的一模一样吗?在这种情况下,不可能对其进行修补,因为只需导入它就可以在中输入True
大小写,并且永远不会退出import语句。如果您的生产代码不同,请发布。嗨,米歇尔。查看更新的代码。当当前_间隔达到配置间隔时退出。是否与您编写的完全相同?在这种情况下,不可能对其进行修补,因为只需导入它就可以在中输入True
大小写,并且永远不会退出import语句。如果您的生产代码不同,请发布。嗨,米歇尔。查看更新的代码。当当前_间隔达到配置间隔时退出。是否与您编写的完全相同?在这种情况下,不可能对其进行修补,因为只需导入它就可以在中输入True
大小写,并且永远不会退出import语句。如果您的生产代码不同,请发布。嗨,米歇尔。查看更新的代码。当当前_间隔达到配置间隔时退出。
with patch('sniffer.socket.socket.recvfrom') as m_recvfrom:
m_recvfrom.return_value = dummy_pkt