winsock.h und timeout
-
Hallo,
ich hab mich nach langer Zeit mal wieder an C gewagt (normalerweise benutze ich PHP, manchmal Perl) und ein Programm mir zusammen gebastelt:#include <stdio.h> #include <winsock.h> int ping(char *addr, int port ){ int sock, count; struct sockaddr_in blah; struct hostent *he; char cgiBuff[1024]; WSADATA wsaData; if(WSAStartup(0x101,&wsaData)){ printf("Unable to initialize WinSock lib.\n"); exit(1); } sock = socket(AF_INET,SOCK_STREAM,0); blah.sin_family=AF_INET; blah.sin_addr.s_addr=inet_addr(addr); blah.sin_port=htons(port); if((he = gethostbyname(addr)) != NULL){ memcpy((char *)&blah.sin_addr, he->h_addr, he->h_length); }else{ printf("konnte %s nicht aufloesen", addr); WSACleanup(); return 0; } if (connect(sock,(struct sockaddr*)&blah,sizeof(blah))!=0){ WSACleanup(); /* printf("offline (%s)\n", addr); */ return 0; }else{ closesocket(sock); printf("online (%s)\n", addr); WSACleanup(); return 0; } } int main(){ while(1){ ping("google.de", 80); /* weitere hier */ printf("------------------------\n"); } return 0; }soweit funktioniert das ganze, nur würde ich gern den timeout etwas geringer einstellen, also falls ein Host mal nicht "leben" sollte.
Vielen Dank
Nik
-
Dieser Thread wurde von Moderator/in Shade Of Mine aus dem Forum ANSI C in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
WSAAsyncSelect() bzw. select() dürfte dich evtl. interessieren...