Не удается отправить данные на адрес обратной связи с адреса обратной связи

Можно ли отправить данные с 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

Другие вопросы по тегам