如何使用python套接字在特定端口中发送消息?没有随机端口

贝恩

我必须在本地主机上测试带有确认的广播。因此,我有一些表示节点的文本文件,并且在其中有邻居列表。
我使用本地主机作为IP,端口是节点的编号。

问题是当我从7000之类的节点接收到一条消息(我发送的消息)时,python用一个随机数代替了它,例如65724。所以现在我的父亲是65724,而不是7000,所以我无法从邻居列表中删除7000。 。
我无法完成算法,这非常令人沮丧。

我可以发送带有所需端口号的消息,但这不是很优雅。

有人可以告诉我如何不允许python随机化端口吗?

rmunn救了我,我一直在寻找的答案是connect方法之前的bind。在发送消息之前,您绑定自己的端口,然后连接到另一个端口。

本质上,这不是Python问题。您对端口的工作方式感到困惑。

每个TCP通信(发送或接收)都有两个IP地址和两个端口:主机IP和主机端口,以及目标IP和目标端口。

如果您要与网络上“不在那儿”的计算机进行通信,则主机IP和目标IP将有所不同。在您的测试案例中,您的主机IP和目标IP均为127.0.0.1(localhost)。但是,在我的示例中,我将使用“不同IP”的情况,因为这样可以更容易看到。

因此,您的IP地址为10.1.2.3,并且您正在与10.1.2.99处的计算机通信。您告诉系统您想在端口7000上与10.1.2.99通话,它打开了一个连接。发生这种情况时,它将随机选择一个未使用的源端口。因此,现在有一个双向通信渠道开放:

10.1.2.3:65274 <-> 10.1.2.99:7000

请注意,您也不会挑选主机端口。编辑:我最初说:“事实上,该系统不会你挑主机端口,它会被分配给你”在这里,但这是错误的。如果s是套接字对象,则可以调用s.bind()设置其源端口,然后调用s.connect()以连接到目标端口。

现在,当您正在收听消息时,然后选择您正在收听的端口,与您连接的计算机将具有一个随机端口。因此,如果您正在侦听端口8912上的消息,则传入连接(一旦建立)将如下所示:

10.1.2.3:8912 <-> 10.1.2.99:38290

请注意,计算机的操作系统在10.1.2.99 IP地址上随机选择了38290。

现在使用Python。您在问题标题中提到了套接字,因此我假设您正在使用socketPython标准库中模块。创建套接字对象后s,可使用s.getpeername()来查找已连接的地址(主机和端口),并s.getsockname()查找已从其连接的地址(主机和端口)

由于您谈论的是期望数字7000并获得一个随机数,因此我认为应该在使用目标套接字使用主机套接字。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何限制随机端口套接字的范围?

来自分类Dev

通过套接字在python中发送消息

来自分类Dev

使用 Spring Integration 将消息发送到套接字端口并接收响应

来自分类Dev

如何使用Phoenix向特定的套接字发送消息

来自分类Dev

无法在具有特定IP和端口的Linux机器上使用Python使原始UDP套接字正常工作

来自分类Dev

如何在多个消息中发送带有套接字的文件?

来自分类Dev

如何使用cppzmq从ROUTER套接字向特定的DEALER套接字发送ZeroMQ消息?

来自分类Dev

如何在同一端口上同时使用套接字发送和接收

来自分类Dev

套接字使用随机端口,我需要一个端口

来自分类Dev

使用python套接字发送消息

来自分类Dev

使用python套接字发送消息

来自分类Dev

如何使用MAMP打开Web套接字端口

来自分类Dev

如何使用Java套接字编程获取本地端口

来自分类Dev

Python套接字服务器,用户有没有办法在终端上输入端口?

来自分类Dev

端口转发和Python套接字

来自分类Dev

Python套接字NAT端口地址

来自分类Dev

apache2没有可用的侦听套接字,但是端口上没有侦听

来自分类Dev

如何使用setInterval从zmq套接字发布随机消息?

来自分类Dev

试图创建一个带有公共 IP 的套接字,没有端口转发的 java?

来自分类Dev

如何使用bash创建套接字服务器并在同一端口中允许多个客户端?

来自分类Dev

通过套接字和端口发送和接收数据

来自分类Dev

如果服务器打开到端口的连接但客户端没有发送任何东西会发生什么?(Java 服务器套接字)

来自分类Dev

为什么套接字关闭后端口没有立即释放?

来自分类Dev

套接字端口与侦听端口不匹配

来自分类Dev

C ++套接字-多个端口或单个端口

来自分类Dev

在Golang中,如何接收套接字绑定到特定地址/端口的多播数据包?

来自分类Dev

套接字也接受端口吗?

来自分类Dev

Python:通过套接字发送的消息大小

来自分类Dev

Python套接字-同时发送/接收消息

Related 相关文章

  1. 1

    如何限制随机端口套接字的范围?

  2. 2

    通过套接字在python中发送消息

  3. 3

    使用 Spring Integration 将消息发送到套接字端口并接收响应

  4. 4

    如何使用Phoenix向特定的套接字发送消息

  5. 5

    无法在具有特定IP和端口的Linux机器上使用Python使原始UDP套接字正常工作

  6. 6

    如何在多个消息中发送带有套接字的文件?

  7. 7

    如何使用cppzmq从ROUTER套接字向特定的DEALER套接字发送ZeroMQ消息?

  8. 8

    如何在同一端口上同时使用套接字发送和接收

  9. 9

    套接字使用随机端口,我需要一个端口

  10. 10

    使用python套接字发送消息

  11. 11

    使用python套接字发送消息

  12. 12

    如何使用MAMP打开Web套接字端口

  13. 13

    如何使用Java套接字编程获取本地端口

  14. 14

    Python套接字服务器,用户有没有办法在终端上输入端口?

  15. 15

    端口转发和Python套接字

  16. 16

    Python套接字NAT端口地址

  17. 17

    apache2没有可用的侦听套接字,但是端口上没有侦听

  18. 18

    如何使用setInterval从zmq套接字发布随机消息?

  19. 19

    试图创建一个带有公共 IP 的套接字,没有端口转发的 java?

  20. 20

    如何使用bash创建套接字服务器并在同一端口中允许多个客户端?

  21. 21

    通过套接字和端口发送和接收数据

  22. 22

    如果服务器打开到端口的连接但客户端没有发送任何东西会发生什么?(Java 服务器套接字)

  23. 23

    为什么套接字关闭后端口没有立即释放?

  24. 24

    套接字端口与侦听端口不匹配

  25. 25

    C ++套接字-多个端口或单个端口

  26. 26

    在Golang中,如何接收套接字绑定到特定地址/端口的多播数据包?

  27. 27

    套接字也接受端口吗?

  28. 28

    Python:通过套接字发送的消息大小

  29. 29

    Python套接字-同时发送/接收消息

热门标签

归档