LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1290|回复: 7

socket 编程中一个绑定失败的问题求救。

[复制链接]
发表于 2006-9-26 17:29:55 | 显示全部楼层 |阅读模式
sruct sockdaar_in   serv;
int listenfd; /*定义监听套接字*/
int tmp; /*用于接收bind函数的返回值*/
....
....
serv.sin_family=AF_INET;
serv.sin_port=htons(13);
serv.sin_addr.s_addr=htonl(INADDR_ANY);
printf("%u\n",serv.sin_addr.s_addr);
tmp=bind(listenfd,(strut sockaddr*)&serv,sizeof(serv));
if(tmp<0)
{
    printf("the tmp value is:%d\n",tmp);
    printf("bind error\n");
    exit(0);
}
...
...
我编译能够成功,但是运行结果是:
0
the tmp value is:-1
bind error
这是为什么啊?为什么地址打印为0呢?而且也不能绑定?
发表于 2006-9-27 14:31:17 | 显示全部楼层
用perror  打印错误看看吧
我现在用的都是现成的积累下来接口函数
bind之类的好多年没接触啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-27 20:19:52 | 显示全部楼层
Post by lpsir
用perror  打印错误看看吧
我现在用的都是现成的积累下来接口函数
bind之类的好多年没接触啦
打印错误为:permission denied。
为什么没有权限啊?请指教。
回复 支持 反对

使用道具 举报

发表于 2006-9-29 09:08:55 | 显示全部楼层
13号端口可以这么用吗?!
回复 支持 反对

使用道具 举报

发表于 2006-9-30 00:47:19 | 显示全部楼层
13号端口是daytime Daytime,你这样用好像不对哦。你尝试bind其它端口看,建议1024以后的,看有问题没有。
回复 支持 反对

使用道具 举报

发表于 2006-9-30 02:23:20 | 显示全部楼层
小于1024的端口只有root权限才能bind成功
回复 支持 反对

使用道具 举报

发表于 2006-9-30 09:59:21 | 显示全部楼层
哈哈  我没有注意
我建议你用10000以上的端口
回复 支持 反对

使用道具 举报

发表于 2006-9-30 20:34:56 | 显示全部楼层
尽量不用1024以下的端口
INADDR_ANY就是定义的0 当然是0
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表