2014-02-27 40 views
0

我正在使用Opencv和Boost庫編寫C++程序。到目前爲止,我正在使用Kate,並使用具有root特權的終端執行我的程序。使用沒有root權限的UDP套接字

我決定搬到eclipse,但是遇到了執行程序的問題,因爲它需要root權限,而eclipse不能使用root權限。
我注意到,爲了使用

boost::asio::ip::udp::socket _socket(io_service, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 13)); 

程序需要root權限。

我可以以某種方式使用udp套接字而不必爲程序提供root權限嗎?

任何幫助,將不勝感激。

+0

「我注意到」我們應該如何幫助?這種行爲可能是一些特殊的配置怪癖或特定於您的構建或目標操作系統或其上的庫的實現。我們所擁有的只是模糊的想法,你「注意到了」*某事*,並從中得出結論。事實上,它不是需要root權限的UDP套接字,而是需要root權限的SOCK_RAW套接字。 http://stackoverflow.com/questions/4404860/raw-sockets-need-root-priviliege和http://sock-raw.org/papers/sock_raw – kfsone

+0

幫助:永遠不要使用具有root權限的程序。只是不這樣做。 – user1810087

+0

可能的重複[有沒有辦法讓非root進程綁定到Linux上的「特權」端口(<1024)?](http://stackoverflow.com/questions/413807/is-there-a-way- for-non-root-processes-to-bind-to-privileged-ports-1024-on-l) –

回答

1

使用低於1024的端口需要root權限。

我正在使用特權端口(13)。

+0

http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root -processes到綁定到特權端口-1024-上-1- – user1810087