Socket Fehler : Ungültiger Dateideskriptor

Post Reply
Message
Author
Roman Scheidegger

Socket Fehler : Ungültiger Dateideskriptor

#1 Post by Roman Scheidegger »

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<font size="2">), port1;
int s = socket(AF_INET, SOCK_STREAM, 0);
port++;
info.sin_addr.s_addr = inet_addr(argv<font size="1">);
info.sin_family = AF_INET;
info.sin_port = htons(port);
while(port<atoi(argv<font size="3">))
{
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

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Socket Fehler : Ungültiger Dateideskriptor

#2 Post by hjb »

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?

Labba

Re: Socket Fehler : Ungültiger Dateideskriptor

#3 Post by Labba »

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

Post Reply