Не удается отправить данные на адрес обратной связи с адреса обратной связи
Можно ли отправить данные с 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));
1 ответ
Решение
sin.sin_addr = 16777343; //127.0.0.1
Я думаю, что вы можете проверить это.
Здесь 127×255×255×255 + 1 составляет 2105834626.
Используйте правильные функции для выполнения декодирования IP-адресов, не делайте это сами: слишком много крайних случаев (например, подписанных / неподписанных), чтобы их поймали.
sin.sin_port = 16415;//8000
это неправильно, sin_port должен быть в сетевом формате, правильный код должен быть:
sin.sin_port = htons(16415);//8000