免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7695 | 回复: 6
打印 上一主题 下一主题

socket 编程 bind 失败 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-23 16:19 |只看该作者 |倒序浏览
小弟刚学 linux socket 网络编程
程序编译通过,执行时出现邦定失败
:代码如下,请各位大虾指点

//#include     "unp.h".

#include  <time.h>
#include "Myheader.h"
int
main(int argc, char **argv)
{
     int     listenfd, connfd;
     struct sockaddr_in servaddr;
     char    buff[MAXLINE];
     time_t ticks;

     listenfd= socket(AF_INET, SOCK_STREAM,0);
         if (listenfd<0)
                 printf("socket error\n";

     bzero(&servaddr, sizeof(servaddr));
     servaddr.sin_family = AF_INET;
     servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
     servaddr.sin_port = htons(13); /* daytime server */

     if((bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)))<0)
                 printf("bind error\n";

     if((listen(listenfd, 1024))<0)
                 printf("listen error\n";

     for ( ; ; ) {
         connfd = accept(listenfd, (struct sockaddr *) NULL, NULL);

         ticks = time(NULL);
         snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
         write(connfd, buff, strlen(buff));

         close(connfd);
     }
}

论坛徽章:
0
2 [报告]
发表于 2007-05-23 16:39 |只看该作者
一般是端口已经被使用
出错信息呢?

论坛徽章:
0
3 [报告]
发表于 2007-05-23 16:43 |只看该作者
八成又是沒有設置SO_REUSEADDR。

论坛徽章:
0
4 [报告]
发表于 2007-05-23 16:53 |只看该作者
1024以下的端口需要特权用户才能绑定
你确认你是用root的权限在执行吗?

论坛徽章:
0
5 [报告]
发表于 2007-05-23 17:10 |只看该作者
综合3,4楼是LZ要考虑的问题.

论坛徽章:
0
6 [报告]
发表于 2007-05-23 18:41 |只看该作者

回复 1楼 zyc911 的帖子

果然是端口号的问题
谢谢各位了

论坛徽章:
0
7 [报告]
发表于 2014-02-07 15:02 |只看该作者
楼至的问题是怎么解决的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP