[sockets] connect() verbindet nicht?
-
guten tag @ all,
Ich sitze nun schon die ganze nacht an dem code für einen portscanner(linux) und komme an einer Stelle nicht weiter:
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: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
-
Was sind denn "_port" und "_IP1" für Variablentypen?
Die Compiler-Warnung kannst Du ignorieren. connect() erwartet einen Zeiger auf "struct sockaddr", Du übergibst aber einen Zeiger auf "struct sockaddr_in", was im Grunde identisch ist.
Wenn's Dich stört, kannst Du dem 2. Parameter von connect() ein "(struct sockaddr *)" voranstellen.
-
HI,
thx erstma! Die compilerwarnung ist weg_port und _IP1 sind bei des Cstrings, deswegen auch die funktionen "atoi" und "inet_pton" um diese in die richtige binäre form zu bringen.
...Oder mach ich hier was falsch ?
Den connect gibt immer noch -1 zurück
-
perror sagt dir genaueres über den fehler.
-
so,
ich weiß jetzt woran es lag das connect immer -1 zurück gegeben hat :add.sin_addr = htons(atoi(_port))
...so gehts jetzt!
THX nochmal für eure beiträge
Gruss darrell