Я пытаюсь подключиться к своему серверу через порт 69, используя winsock2.h. Кажется, что все компилируется правильно, но в отладчике maincommsock всегда равен -1. Я не могу понять, почему это не работает, и мне нужна помощь. Не очень опытный в программировании сокетов, и не уверен, что делать сейчас! Любая помощь будет принята с благодарностью.
Я не уверен на 100%, что еще можно попробовать. В основном это функция, которая устанавливает соединение на сокете и устанавливает для соединения значение true, чтобы оно могло зацикливаться до тех пор, пока не будет установлено соединение.
int maincommsock;
bool connection = false;
static void establishconn() {
maincommsock = socket(AF_INET, SOCK_STREAM, 0);
if (maincommsock == -1) {
connection = false;
}
//OutputDebugString((LPCSTR)commservers[1]);
/*
struct hostent *host;
if ((host = gethostbyname(SERV_ADDR)) == NULL) {
connection = FALSE;
}
*/
SOCKADDR_IN sockaddr;
sockaddr.sin_port = 69;
sockaddr.sin_family = AF_INET;
sockaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
//sockaddr.sin_addr.s_addr = *((unsigned long*)host->h_addr);
if (connect(maincommsock, (SOCKADDR *)(&sockaddr), sizeof(sockaddr)) != 1) {
connection = true;
}
}
EDIT
Я использовал WSAStartup, и в настоящее время я получаю сообщение об ошибке: Невозможно установить соединение, поскольку целевая машина активно отказала ему. "
РЕДАКТИРОВАТЬ 2
использовал htons на порт. В нем говорится, что операция успешно завершена, но на сервере не отображаются соединения
РЕДАКТИРОВАТЬ 3
Я собираюсь протестировать его на linux, чтобы убедиться, что это действительно ошибка на стороне сервера, а не проблема с моим кодом. Я буду держать вас в курсе, ребята.