gpt4 book ai didi

Python UDP客户端没有响应

转载 作者:行者123 更新时间:2023-12-01 02:26:35 26 4
gpt4 key购买 nike

Python UDP 客户端:

root@kali-linux:~# python
Python 2.7.14 (default, Sep 17 2017, 18:50:44)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> target_host = "127.0.0.1"
>>> target_port = 80
>>> client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
>>> client.sendto("AAABBBCCC",(target_host,target_port))
9
>>> data, addr = client.recvfrom(4096)
# to this line,no response
>>>print data # waiting for imput

当我输入“data, addr = client.recvfrom(4096)”然后回车时,我等了十分钟没有任何反应。

但是当我编写 TCP 客户端时,它可以工作。这是代码:

root@kali-linux:~# python
Python 2.7.14 (default, Sep 17 2017, 18:55:37)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>import socket
>>>target_host = "www.baidu.com"
>>>target_port = 80
>>>client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>>>client.connect((target_host,target_port))
>>>client.send("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")
35
>>>response = client.recv(4096)
>>>print response
#output
HTTP/1.1 200 OK
Date: Thu, 16 Nov 2017 12:05:07 GMT
Content-Type: text/html
Content-Length: 14613
Last-Modified: Wed, 01 Nov 2017 03:00:00 GMT
Connection: Keep-Alive
Vary: Accept-Encoding

AND SO ON ..........

TCP客户端可以工作,UDP客户端不能工作,为什么?

我该怎么办?

最佳答案

UDP端口和TCP端口是不同的实体。您可以在 TCP 端口 80 上运行 TCP 服务器,而在 UDP 端口 80 上运行完全不同的服务器(例如 NTP 服务器,尽管它通常在 UDP 端口 123 上运行)。

在您的第一个代码片段中,您将向 UDP 端口 80 发送 UDP 数据包。很可能没有任何内容在 UDP 端口 80 上监听,因此该数据包会被默默丢弃。

您的data, addr = client.recvfrom(4096)然后正在等待某人(不一定是您向其发送请求的服务器)向您发送另一个UDP数据包。由于通常在 UDP 端口 80 上没有任何监听,所以什么也不会发生,并且 revcfrom 调用会永远等待。工作正常。这是预料之中的。

你可以做什么来接收一些东西:1. 将 UDP 片段的套接字绑定(bind)()到端口 2222(或任何空闲端口),然后运行它。它将再次永远等待。2. 使用“target_port = 2222”运行第二个实例(在不同的 shell 中)。现在,您应该在第一个实例中收到一个内容为“AAABBBCCC”的 UDP 数据包。

在第二个代码片段中,您使用 TCP,并且正在通过 TCP 端口 80(不是 UDP 端口 80)联系 Web 服务器,该服务器会做出响应。如您所见,这按预期工作,但前提是 TCP 端口 80 上有某些东西正在运行。

关于Python UDP客户端没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47326955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com