PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Socket] Permission denied bei bind()



Silver
07-09-2003, 18:37
HI!

Also ich bekomme bei meinem Programm wenn ich als normaler User eingeloggt bin, den Fehler Permission denied! Also root funkts natürlich! Aber das komische ist, dass es nur bei diesem Programm so ist, nicht bei anderen, obwohl die gleichen Rechte vorhanden sind! Ich poste mal den Code, aber das da ein Fehler ist, kann ich mir net vorstellen :rolleyes: !



s_fd = socket (AF_INET, SOCK_STREAM, 0);
if (s_fd == -1)
{
perror ("Fehler bei socket()");
return -1;
}

my_addr.sin_addr.s_addr = INADDR_ANY;
my_addr.sin_port = htons (PORT);
my_addr.sin_family = AF_INET;

s_ok=setsockopt(s_fd, SOL_SOCKET, SO_REUSEADDR, &ja, sizeof(int));
if (s_ok==-1) {
perror("Fehler bei setsockopt():");
return -1;
}

/* hier brauche ich ROOT-Rechte -> komisch */
s_ok = bind (s_fd, (struct sockaddr *) &my_addr, sizeof (my_addr));
if (s_ok == -1)
{
perror ("Fehler bei bind()");
return -1;
}

s_ok = listen (s_fd, 5);
if (s_ok == -1)
{
perror ("Fehler bei listen()");
return -1;
}




vielen dank im voraus!

mfG

Trillian
07-09-2003, 19:00
Nur root darf Ports < 1024 binden.

Silver
07-09-2003, 19:16
Danke!!!

das hab ich schon mal zwar gelesen, aber anscheinend wieder gleich vergessen! :(

bussi, baba :D !!!