我们可以将捕获的数据包作为参数传递给Socket send()函数

时间:2015-07-02 09:45:02

标签: python-2.7 networking tcp fuzzing

我是网络初学者。我们有发送者和接收者申请。我已经使用WinDump捕获了发送方发送给接收方的数据包。

我正在编写一个python发送者应用程序,它将发送者发送给接收者的数据包模糊。

我只想确认一下,我可以直接把使用WinDump获得的数据包放到socket send()方法中。

说,“arp who-has host1告诉host2”是WinDump获得的数据包

我可以写,

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(arp who-has host1 tell host2)

1 个答案:

答案 0 :(得分:-1)

在一般的pyhton网络编程中,你不能使用send方法作为参数传递。你只是将字符串作为参数传递给变量。

基本上我们使用send()和sendall()方法来传输TCP消息。

我已经为这两种方法提到了以下解释。

socket send()方法:

套接字的send()方法无法保证发送您传递的所有数据。相反,它返回实际发送的字节数,并期望您的应用程序处理未发送部分的重传

from socket import socket

sock = socket()
sock.connect(('1.2.3.4', 1234))
sock.send('My Name is Dasadiya Chaitanya !!!\n'')
sock.close()

套接字sendall()方法:

send()方法的工作方式相同,但python提供了一种名为sendall()的便捷方法,可以确保在返回之前发送所有数据,并提供保证将所有数据发送到接收机。

from socket import socket

sock = socket()
sock.connect(('1.2.3.4', 1234))
sock.sendall('My Name is Dasadiya Chaitanya !!!\n')
sock.close()

我希望这对你有用:)