Problem mit accept bei sockets unter Linux mit gcc 3.3.3
-
if ((newfd = accept(listener, (struct sockaddr *)&remoteaddr, &addrlen) == -1)
Diese Zeile bringt bei mir folgenden fehler für den Parameter &addrlen.
main.cpp
error: invalid conversion from `int*' to `socklen_t*'
Laut funktionsdefinition erwartet er aber einen Int Pointer. Ich hab schon mal getestet das addrlen nach socklen_t zu casten, dann kompiliert er es zwar aber es kommen dann immer ganz komische ipadressen raus.
Hat jemand nen Tipp ?
Danke
-
nö, man: accept(2) erwartet socklen_t. Änder doch einfach den Datentyp. Das hat schon seinen Grund, dass socklen_t verlangt wird.
-
Ich muss ja erst mal die länge von dem Struct rauskriegen, das mach ich mit sizeof. Da krieg ich aber nen In zurück. Wie krieg ich den dann in ein socklen_t ?. Wenn ich den Caste compiliert er es zwar ich krieg aber immer komische Adressen raus.
-
socklen_t addrlen=sizeof(addr); accept(s,addr,&addrlen);
where is the problem?
-
Cool es funtioniert danke.
Auf die einfachsten Ideen kommt man manchmal einfach nicht.