Linux监听或绑定(bind)80端口失败

Linux监听或绑定(bind)80端口失败

写了一个程序,尝试在80端口监听,结果在执行bind的时候失败了。
程序是这样的:

 

 sockaddr_in sock_addr;
 memset(
& sock_addr,  0 sizeof (sock_addr));
 sock_addr.sin_family 
=  AF_INET;
 sock_addr.sin_addr.s_addr 
=  host_inet_addr;
 sock_addr.sin_port 
=  htons(m_local_port);    // m_local_port=80
 ret  =  bind( m_socket_fd, ( const  sockaddr * ) & sock_addr,  sizeof (sockaddr_in));


ret是-1.
然后将m_local_port改成8080成功了。突然想起来,系统不允许用户程序在1-1024端口监听,因为他们是知名端口。
那么怎么样才可以在知名端口监听呢?显然我的机器上没有再80端口运行的程序,所以一定有办法,莫非是我的程序级别不够。
于是使用su,换成root用户,结果成功bind.

记录一下。

你可能感兴趣的:(Linux监听或绑定(bind)80端口失败)