Socket-Programmierung Berechtigung verweigert

8

Der folgende Code ist das TCP-Server-Programm, senden Sie einfach "HALLO !!" an den Client zurück.

Wenn ich den Server mit Port 80 starte, wird bind () zurückgegeben Permission denied .

Port 12345 ist OK.

Wie kann ich Port 80 für dieses Serverprogramm verwenden?

%Vor%     
user1345414 05.12.2013, 09:59
quelle

3 Antworten

15

Ports unter 1024 gelten als "privilegiert" und können nur mit einem gleichberechtigten Benutzer verbunden werden (lesen Sie: root ).

Alles über und einschließlich 1024 ist "frei zu verwenden" von jedermann.

OT: Sie wissen das vielleicht schon, aber der Port in Ihrem Beispiel ist der für HTTP-Webserver. Wer diesen Port hört, sollte auch HTTP sprechen. Eine einfache "Hallo Welt" reicht nicht aus. ; -)

    
Linus Kleen 05.12.2013, 10:00
quelle
7

Nur der Benutzer root darf an Ports & lt; = 1024 binden. Alle Ports & gt; 1024 kann von normalen Benutzern gebunden werden.

Versuchen Sie, Ihr Programm als root oder mit sudo auszuführen.

    
akluth 05.12.2013 10:02
quelle
3

Sie müssen Ihre Anwendung mit super Benutzerkonto (root) ausführen

Führen Sie Ihre Anwendung mit sudo command

aus     
MOHAMED 05.12.2013 10:00
quelle

Tags und Links