Socket bind() schlägt prinzipell fehlt (OS-X only)

S

souljumper

Mitglied
Thread Starter
Dabei seit
15.10.2008
Beiträge
26
Reaktionspunkte
0
hi,

hab hier ein Programmcode der sich unter ubuntu, suse etc. kompilieren und ausführen lässt.
unter os-x ebenfalls kompilierbar, aber wenn ich programm ausführe krieg ich ein bind(): Can't assign requested address

Code:
   memset((char *)&si_me, sizeof(adr), 0);
   adr.sin_family = AF_INET;
   adr.sin_port = htons(port);
   adr.sin_addr.s_addr = inet_addr("192.168.2.50");
   if (bind(sock, (struct sockaddr *)&adr, sizeof(adr)) == -1)
      printError("bind");

Das Problem tritt allerdings nur unter os-x auf. die ip-adresse ist 100% frei, es gibt keinen anderen dienst/programm das auf dieser ip horcht oder blockiert und ich führe das programm als root aus. Aber immer => Can't assign requested address beim bind

jemnd eine idee woran das liegen kann? das muss ein os-x problem sein, weil jedes anderes linux frisst das kommentarlos und funktioniert.(habs auf debian, suse, ubuntu ausprobiert)
 
Was ist denn die Port Addresse? Alles unter Port Nummer 1024 braucht Superuser Rechte

Alex
 
Port ist im Bereich 9xxx

Hab aber schon als super-user ausgeführt um dem problem aus dem weg zu gehen. ist mir absolut unverständlich, warum er sih weigert sich an das interface zu binden.
 
Warum nimmst Du "192.168.2.50" ?

Ich nehme da Address.sin_addr.s_addr=INADDR_ANY;

Alex
 
Läuft vllt. schon ein anderes Programm auf diesem Port?
 
Zurück
Oben Unten