我正在编写一个C ++应用程序,它接受来自浏览器的HTTP请求并发回响应。
int port = 2127; //80;
int bind_res = ::bind(port, p_ref->ai_addr, p_ref->ai_addrlen);
当我将它设置为侦听端口2127时,应用程序在OSX上按预期工作。但是当我将其设置为侦听端口80时,应用程序停止工作,异常:
server:bind:Permission denied
我的应用程序是一个命令行应用程序,它由其他GUI应用程序打开,也是用C ++编写但用Qt编写。
如何获得足够的权限绑定到端口80?是否有任何API显示用户和密码提示 - 例如在XAMPP控制面板中 - 获得这些权限?
编辑: 我编写了在OSX 10.8 Mountain Lion上运行的应用程序。
答案 0 :(得分:1)
通常由于两个问题而无法绑定:
感觉你遇到了第二种情况的问题。对于使用超级用户权限运行,所有Unix上都有sudo
命令(OSX是Unix)。
如果你不喜欢sudo
,那么你可以permanently redirect the port to other port可以被用户约束。