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

问题:写了一个程序,尝试在21端口监听,结果在执行bind的时候失败了。

 

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

 结果ret为-1


原来,系统不允许用户程序在1-1024端口监听,因为他们是知名端口。

解决办法:

  换成root用户,即可成功bind。(ubuntu下命令为:sudo su  ,然后输入密码回车即可切换用户。)

Linux下监听或绑定(bind)21端口失败,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。