problem mit connect()

darrell

Grünschnabel
guten morgen @ all,

Ich sitze nun schon die ganze nacht an dem code für einen portscanner(linux) und komme an einer Stelle nicht weiter:
Code:
struct sockaddr_in addr;
	
	addr.sin_port = atoi(_port);
	addr.sin_family = AF_INET;
        inet_pton(AF_INET, _IP1 , &addr.sin_addr);
	
	int connecting_status = connect(socket_id, &addr, sizeof(addr) );

...connect gibt -1 zurück ( connectet nicht ).
Ich bekomme beim compiliern auch folgende warnung:
Code:
Warnung: Übergabe des Arguments 2 von »connect« von inkompatiblem Zeigertyp

Ich habe davor noch nie etwas mit sockets gemacht und wäre für jede hilfe dankbar !

MFG Darrell
 
Hi,

ich glaub die Parameterübergabe muss wie folgt aussehen:

Code:
int connecting_status = connect(socket_id,(SOCKADDR*)&addr, sizeof(addr) );

Gruß
cesupa
 
hi,
so habe ich es auch schon versucht :D

aber dann erhalte ich folgende compilerfehler:
Code:
portscanner.c:57: Fehler: »sockaddr_in« nicht deklariert (erste Benutzung in dieser Funktion)
portscanner.c:57: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
portscanner.c:57: Fehler: für jede Funktion in der er auftritt.)
portscanner.c:57: Fehler: expected expression before »)« token
portscanner.c:57: Fehler: Zu wenige Argumente für Funktion »connect«
 
so muss es heissen :
Code:
connect(socket_id, (struct sockaddr *)&addr, sizeof(addr) );

jetzt ist die warung weg, aber connect gibt immernoch -1 zurück

hoffentl kann mir jmd helfen, ich dreh gleich duch

THX schonma!
 
thx!
aber es lag an etwas anderem
unzwar muss es beim eintragen des ports in die structur heissen:
Code:
addr.sin_port = htons(atoi(_port));

gruss darrell
 
Zuletzt bearbeitet:
könntest du schreiben was das Problem ist. Vielleicht hilft es anderen Usern auch weiter..

Und bitte auch als Erledigt markieren..

mfg

Philipp9494
 
Zurück