【发布时间】:2021-04-09 06:00:44
【问题描述】:
我在 VMWare Workstation 16 Player 上使用 2020.4 Kali Linux VM,并且正在使用 Justin Seitz 的 Black Hat Python 书。在第 2 章的开头,他介绍了一个基本的 UDP 客户端,但由于某种原因,我每次都会抛出 ConnectionResetError,因为我发送的端口或接收的端口都被占用了。然后我添加了一行以使其绑定到我要发送的地址并且它有效。当我 sendto() 时它不会自动绑定吗?如果我在进行渗透测试,我在制作 UDP 客户端时不需要密码/管理员来绑定。
这是我的代码:
import socket
address = ('127.0.0.1', 80)
# Create a socket object.
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# I commented this out just for testing reasons.
# client.bind(address)
# Send some data.
client.sendto(b'AAABBBCCC', address)
# Receive some data.
data, addr = client.recvfrom(4096)
print(data)
错误如下:
Traceback (most recent call last):
File ".\udp_client.py", line 15, in <module>
data, addr = client.recvfrom(4096)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
如果这是我的一些愚蠢的错误,我提前道歉。
编辑:
我更改了代码以使用不同的端口 (65536),但现在它只是不打印任何内容或结束脚本,它只是继续运行。
【问题讨论】:
标签: python sockets udp udpclient