IRC без идентификатора ответа (C++)
Итак, я создаю бота для мониторинга моего канала IRC, и я не могу заставить его зарегистрировать идентификатор, я не знаю почему, вот мой код
int count = 0;
int BeginReceive() {
do {
initResult = recv(bobSocket, recvbuf, recvbuflen, 0);
if (initResult > 0) {
printf(recvbuf);
count++;
std::cout << count << std::endl;
switch (count) {
case 2:
Send("USER jackolalno :hello");
Send("NICK jackololno");
break;
case 3:
Send("JOIN ##bob");
default:
break;
}
}
else if (initResult == 0) {
printf("Connection closed\n");
}
else {
printf("recv failed: %d\n", WSAGetLastError());
return 1;
}
} while (initResult > 0);
}
1 ответ
Решение
В вашей команде USER отсутствуют значения.
Он должен содержать четыре параметра, из которых второй и третий могут быть просто заполнены заполнителем, например, "*". См.: https://tools.ietf.org/html/rfc1459.
Скорее всего, вы также не работаете с серверным сервером на порту 113, но это не является обязательным в соответствии с RFC1459.
Надеюсь это поможет!