无法从环回地址向回送地址发送数据

时间:2015-03-09 09:04:37

标签: windows sockets udp loopback-address

是否可以将数据从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));

2 个答案:

答案 0 :(得分:1)

sin.sin_addr = 16777343; //127.0.0.1

我想你可能想检查一下。

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

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

答案 1 :(得分:0)

sin.sin_port = 16415; // 8000

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

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