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
Socket Fehler : Ungültiger Dateideskriptor
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
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?
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
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