0

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

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

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

说,“arp who-has host1 tell 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)
4

1 回答 1

-1

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

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

我已经提到了这两种方法的以下描述。

套接字发送()方法:

套接字的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()

我希望这对你有帮助:)

于 2015-07-02T10:18:15.233 回答