Работала над созданием бота IRC в последнее время, и, хотя кажется, что подключается &, работа с большинством IRC-серверов, похоже, есть проблемы с IRC-сервером Twitch (irc.twitch.tv).Проблема с подключением к IRC-серверу
При подключении к другому серверу данные принимаются & отправлены без каких-либо проблем, однако с подключением триггера я не могу отправлять и получать данные.
Initialize:
Connection::Connection(char* server, int port, std::string nick, std::string pass)
{
fServer = server;
fPort = port;
fNick = nick;
fPass = pass;
fChanCount = 0;
clear_buffer();
fSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
cout << "Attempting to resolve host: " << fServer << endl;
fHost = resolve_host(fServer);
fSaddr.sin_addr.S_un.S_addr = fHost;
fSaddr.sin_port = htons(fPort);
fSaddr.sin_family = AF_INET;
cout << "Resolved to: " << fHost << endl;
}
Open Connection:
int Connection::Connect()
{
if (connect(fSock, (sockaddr*)&fSaddr, sizeof(fSaddr)) == SOCKET_ERROR)
{
cout << "Can't connect to " << fServer << endl;
return 0;
}
recv(fSock, fBuffer, 1024 * 8, 0);
cout << fBuffer << endl << endl << flush;
send_message("PASS " + fPass);
send_message("NICK " + fNick);
send_message("USER " + fNick + " 0 * :" + fNick);
return 1;
}
Очистка буфера:
void Connection::clear_buffer()
{
memset(fBuffer, 0, sizeof(fBuffer));
}
Прием:
string Connection::receive_message()
{
clear_buffer();
recv(fSock, fBuffer, 1024 * 8, 0);
return fBuffer;
}
Полностью тупик от того, что может быть причиной этого, может предоставить больше деталей, если это необходимо.
Является ли 'fPass' пустым? IIRC некоторым IRC-серверам требуется 'PASS', чтобы содержать что-то, даже если сервер не требует пароля. В этом случае я поставил «нет» для пароля. – Galik
Я передаю пароль так же, как и все остальное. – user3815037
Используете ли вы настоящий пароль или токен OAuth? – szatmary