Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Socket Fehler : Ungültiger Dateideskriptor

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Roman Scheidegger
Gast





BeitragVerfasst am: 22. Nov 2000 20:03   Titel: Socket Fehler : Ungültiger Dateideskriptor

Hallo

ich hab ein Problemm mit meinem Portscanner.
Den ersten Port scannt er in Ordnung doch bei den nächstens Ports kommt immer eine Fehlermeldung wegen einem Ungültigen Dateideskriptor!

ich habe hier mal den Code:

#include <stdio.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>


#define BUFFER_SIZE 1024
struct sockaddr_in info;

int main(int argc, char *argv[])
{
int port=atoi(argv), port1;
int s = socket(AF_INET, SOCK_STREAM, 0);
port++;
info.sin_addr.s_addr = inet_addr(argv);
info.sin_family = AF_INET;
info.sin_port = htons(port);
while(port<atoi(argv))
{
printf("trying port %i
", port);
if(connect(s, &info, sizeof(info))!=-1)
{
printf("port %i open
", port);
}
perror("Fehler : ");
port++;
info.sin_port = htons(port);
close(s);
}
}
Sorry wegen dem unübersichtlichen Code!

Danke im voraus Roman
 

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 23. Nov 2000 20:30   Titel: Re: Socket Fehler : Ungültiger Dateideskriptor

Hi,

es geht sicher schon bei int s = socket(...) schief. Das mußt du abfangen und errno auswerten.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Labba
Gast





BeitragVerfasst am: 27. Nov 2000 21:02   Titel: Re: Socket Fehler : Ungültiger Dateideskriptor

Versuche mal die Zeilen zu vertauschen :
info.sin_port = htons(port);
close(s);

zu
close(s);
info.sin_port = htons(port);

Sorry kann's leider nicht testen sitzte an einem Wintendo
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy