2014-04-29 82 views
2

我正在使用boost::asio庫。如何在boost :: asio服務器中使用端口80?

我一直在試圖在端口80上運行我的服務器,但無法讓它這樣做。下面是我的代碼中的有罪行,結果在評論中:

// This runs fine, and the webpage is visible on localhost:8000 
tcp::acceptor a(*io_service, tcp::endpoint(tcp::v4(), 8000)); 

// This throws an error (at this line) 
tcp::acceptor a(*io_service, tcp::endpoint(tcp::v4(), 80)); 

// This runs fine, but the webpage is NOT visible on localhost or localhost:80 
tcp::acceptor a(*io_service, tcp::endpoint()); 

我注意到,端點只接受四位數的端口號。這可能與它有關嗎?

如何查看我的網頁在端口80上運行?謝謝!

+1

哪個操作系統? –

+1

1024以下的端口被保留供系統使用,您必須具有提升的權限才能打開這些端口。 –

+0

@JanHudec Mac OSX – sgarza62

回答

6

我不確定它是如何在Windows上工作的,但在包括Linux在內的Unix上,1024以下的端口只能被特權進程綁定。嘗試運行它作爲root。當然,你應該在打開端口後放棄權限(使用setuid系統調用)。

相關問題