【问题标题】:Can't Send data to loopback address from loopback address无法从环回地址向环回地址发送数据
【发布时间】:2015-05-10 09:19:19
【问题描述】:

是否可以将数据从 127.0.0.1:7000 发送到 127.0.0.1:8000 ?我收到套接字错误 10049,这是无效地址。

sockaddr_in sin;
memset((char*)&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr = 16777343; //127.0.0.1
sin.sin_port = 16415;//8000
int _ret = ::sendto(sock, Buff, Len, 0, (sockaddr*)&sin, sizeof(sin));

【问题讨论】:

  • 您如何使用这些地址 - 使用 API 时,端口号是机器地址的不同参数,即:请显示您的代码。
  • 添加了发送数据的代码。谢谢。

标签: windows sockets udp loopback-address


【解决方案1】:
sin.sin_addr = 16777343; //127.0.0.1

我想你可能想检查一下。

这里 127×255×255×255 + 1 是 2105834626。

使用正确的函数来执行 IP 地址解码,不要自己动手:有太多的边缘情况(例如,有符号/无符号)难以捉摸。

【讨论】:

    【解决方案2】:

    sin.sin_port = 16415;//8000

    这是错误的,sin_port 必须是网络格式正确的代码应该是:

    sin.sin_port = htons(16415);//8000

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2012-06-11
      • 2017-02-21
      相关资源
      最近更新 更多