jangy22xx
07-02-2010, 17:14
ciao ragazzi ho fatto in c il seguente programma che permette di connettersi a un server irc.
il problema è che dopo un tot di tempo m va in loop e il server mi manda il messaggio ping timeout ecc.... da cosa può dipendere?
posto il codice
#include <stdio.h>
#include <winsock.h>
int main(int argc, char *argv[])
{
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
return 0;
SOCKET hSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (hSocket == INVALID_SOCKET)
{
WSACleanup();
return 0;
}
SOCKADDR_IN sockAddr;
sockAddr.sin_port = htons(6667);
sockAddr.sin_addr.s_addr = inet_addr("69.42.221.149");
sockAddr.sin_family = AF_INET;
if (connect(hSocket, (SOCKADDR *)&sockAddr, sizeof(sockAddr)) != 0)
{
WSACleanup();
return 0;
}
char buffer[260], temp[260];
while (1)
{
int bytesRcv = recv(hSocket, buffer, sizeof(buffer), 0);
if (bytesRcv != 0 || bytesRcv != SOCKET_ERROR)
{
printf("%s", buffer);
if (strstr(buffer, "No ident response") != NULL)
{
sprintf(temp, "USER something something something :redguard \r\n");
send(hSocket, temp, strlen(temp), 0);
sprintf(temp, "NICK angy444 \r\n");
send(hSocket, temp, strlen(temp), 0);
sprintf(temp, "WHOIS angy444 \r\n");
send(hSocket, temp, strlen(temp), 0);
sprintf(temp, "JOIN #area.irc \r\n");
send(hSocket, temp, strlen(temp), 0);
}
} else break;
}
return 0;
il problema è che dopo un tot di tempo m va in loop e il server mi manda il messaggio ping timeout ecc.... da cosa può dipendere?
posto il codice
#include <stdio.h>
#include <winsock.h>
int main(int argc, char *argv[])
{
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
return 0;
SOCKET hSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (hSocket == INVALID_SOCKET)
{
WSACleanup();
return 0;
}
SOCKADDR_IN sockAddr;
sockAddr.sin_port = htons(6667);
sockAddr.sin_addr.s_addr = inet_addr("69.42.221.149");
sockAddr.sin_family = AF_INET;
if (connect(hSocket, (SOCKADDR *)&sockAddr, sizeof(sockAddr)) != 0)
{
WSACleanup();
return 0;
}
char buffer[260], temp[260];
while (1)
{
int bytesRcv = recv(hSocket, buffer, sizeof(buffer), 0);
if (bytesRcv != 0 || bytesRcv != SOCKET_ERROR)
{
printf("%s", buffer);
if (strstr(buffer, "No ident response") != NULL)
{
sprintf(temp, "USER something something something :redguard \r\n");
send(hSocket, temp, strlen(temp), 0);
sprintf(temp, "NICK angy444 \r\n");
send(hSocket, temp, strlen(temp), 0);
sprintf(temp, "WHOIS angy444 \r\n");
send(hSocket, temp, strlen(temp), 0);
sprintf(temp, "JOIN #area.irc \r\n");
send(hSocket, temp, strlen(temp), 0);
}
} else break;
}
return 0;