Conn. timed out [irc]
Jeg bruger følgende kilde til at forbinde til en IRC server, men det resulter i timeout, yderligere hvor kommer de linjer der ikke starter med RECV fra ? (notice og CE) jeg har jo cout << "RECV ...___Kilden____
#include <iostream.h>
#include <winsock.h>
void main()
{
char tpkt1[17] = "NICK MORACPP\n\n"; /* message to send to host */
char tpkt2[50] = "USER MORACPP unresolved 193.163.220.3 :Mora\n\n"; /* message to send to host */
// WriteLn('NICK '+nick);
// WriteLn('USER '+nick+' unresolved '+server+' :'+navn);
char servername[80]="193.163.220.3"; /* pointer to name of server */
struct hostent *h; /* getnamebyhost info returned */
struct sockaddr_in sa; /* socket address */
int fd; /* socket descriptor */
short portnum=6667; /* port number of server */
int funcstatus; /* returned status from socket functions */
int inlen; /* length of input message */
char inbuf[200000]; /* input message buffer */
WSADATA wsaData; /* Winsock parameters */
WSAStartup( 0x0101, &wsaData);
/* get host address */
h = gethostbyname(servername);
if (h == NULL) {
cout << "gethostbyname error";
exit(0);
}
/* build socket structure */
memcpy((char *)&sa.sin_addr,(char *)h->h_addr, h->h_length);
sa.sin_family = h->h_addrtype;
sa.sin_port = htons(portnum);
/* allocate an open socket */
fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (fd == -1) {
cout << "socket creation error";
cin.ignore();
exit(0);
}
else
cout << "socket created\n";
/* connect to the server */
if (connect(fd, (struct sockaddr *)&sa, sizeof sa) < 0) {
cout << "connect error";
cin.ignore();
exit(0);
}
cout << "connected\n";
/* send a packet to the server */
funcstatus = send(fd, tpkt1, strlen(tpkt1)+1, 0 );
if (funcstatus == -1) {
cout << "Error sending data1 to server\n";
cin.ignore();
exit(0);
}
cout << "packet1 sent to server\n";
funcstatus = send(fd, tpkt2, strlen(tpkt2)+1, 0 );
if (funcstatus == -1) {
cout << "Error sending data2 to server\n";
cin.ignore();
exit(0);
}
cout << "packet2 sent to server\n";
/* wait for a reply */
for (int i = 0; i<5; i++){
inlen = recv(fd, inbuf, 200000, 0);
if (inlen < 0)
cout << "Error receiving data from the server\n";
else
cout << "RECV : " << inbuf;
}
WSACleanup();
cin.ignore();
}
___ Følgende kommer ___
socket created
connected
packet1 sent to server
packet2 sent to server
RECV : NOTICE AUTH :*** Looking up your hostname...
RECV : NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Found your hostname
RECV : NOTICE AUTH :*** Got Ident response
CE AUTH :*** Found your hostname
RECV : ERROR :Closing Link: MORACPP[BestLord@255.255.255.255] (Connection Timed
Out)
RECV : ERROR :Closing Link: MORACPP[BestLord@255.255.255.255] (Connection Timed
Out)
___En korrekt tilslutning fra delphi___
NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Found your hostname, cached
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Got Ident response
:irc.inet.tele.dk 001 GnuBot :Welcome to the Internet Relay Network GnuBot
Ident programmet er ikke det samme, men da serveren svarer "NOTICE AUTH :*** Got Ident response" tror jeg næppe det er fejlen.
