在 python 中使用 udp 客户端从 127.0.0.1 接收响应时出现问题

Issue with receiving response from 127.0.0.1 with udp client in python

我正在阅读这本书 'Black Hat Python' 并且在端口 80 上与 127.0.0.1 的 UDP 连接有问题。我对这些东西很陌生所以我不能简单地坐下来下来并快速有效地排除故障,所以我希望有人能够指出错误或者这可能只是我的设置。我正在使用 VMware Fusion 在 Kali VM 中对此进行测试。套接字保持打开状态并等待响应,但从未收到响应。

import socket

target_host = "127.0.0.1"
taget_port = 80

client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.sendto("AAABBBCCC", (target_host, taget_port))

data, addr = client.recvfrom(4096)

print data

您的客户端和服务器存在于同一个线程中的架构非常不寻常。我不会推荐它。

然而,如果您 .bind() 将套接字连接到目标地址,您的程序将按您希望的方式运行:

import socket

target_host = "127.0.0.1"
target_port = 8000

client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.bind((target_host, target_port))
client.sendto("AAABBBCCC", (target_host, target_port))

data, addr = client.recvfrom(4096)

print data