为什么我的基本 python UDP 客户端会收到 ConnectionResetError?
Why am I getting a ConnectionResetError for my basic python UDP client?
我在 VMWare Workstation 16 Player 上的 2020.4 Kali Linux VM 上工作,我正在使用 Justin Seitz 的 Black Hat Python 一书。就在第 2 章的开头,他介绍了一个基本的 UDP 客户端,但由于某种原因,我每次都会抛出一个 ConnectionResetError,因为我发送到的端口或我从中接收的端口被占用。然后我添加了一行以使其绑定到我要发送到的地址并且它起作用了。当我发送到()时它不会自动绑定吗?如果我在进行渗透测试,那么在创建 UDP 客户端时我不需要 password/admin 进行绑定。
这是我的代码:
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
) 但现在它不打印任何内容或结束脚本,它只是保持 运行.
我建议您尝试使用 80 端口以外的端口(所有 HTTP 流量的默认端口),该端口可能经常被使用并且不适合尝试并坚持下去,请尝试端口号 > 1023
我在 VMWare Workstation 16 Player 上的 2020.4 Kali Linux VM 上工作,我正在使用 Justin Seitz 的 Black Hat Python 一书。就在第 2 章的开头,他介绍了一个基本的 UDP 客户端,但由于某种原因,我每次都会抛出一个 ConnectionResetError,因为我发送到的端口或我从中接收的端口被占用。然后我添加了一行以使其绑定到我要发送到的地址并且它起作用了。当我发送到()时它不会自动绑定吗?如果我在进行渗透测试,那么在创建 UDP 客户端时我不需要 password/admin 进行绑定。
这是我的代码:
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
) 但现在它不打印任何内容或结束脚本,它只是保持 运行.
我建议您尝试使用 80 端口以外的端口(所有 HTTP 流量的默认端口),该端口可能经常被使用并且不适合尝试并坚持下去,请尝试端口号 > 1023