找回密码
 注册
查看: 1037|回复: 4

accept()的地3个参数到底应该是什么类型?

[复制链接]
发表于 2006-5-12 09:19:24 | 显示全部楼层 |阅读模式
有的说
int accept(int sockfd,struct sockaddr * cliaddr,socklen_t * addrlen);
还有说
 int accept(int sockfd, void *addr, int *addrlen);

而我在使用anjuta编译一段代码:
int addr_size = (int)sizeof(remote_sin);


conn_socket = accept(Mysocket, (struct sockaddr *)&remote_sin, &addr_size);
报错
invalid  conversion from 'int *' to 'socklen_t *'
刚学网络编程,请明白人指点一下呀!
 楼主| 发表于 2006-5-12 09:23:25 | 显示全部楼层
以前使用gcc编译类似的语句时也是使用int *作为地3个参数,没有问题亚?
回复

使用道具 举报

 楼主| 发表于 2006-5-12 10:09:21 | 显示全部楼层
原来是编译器的问题,我的项目设定是c++,他使用的是g++编译,就会出错。

那我怎么才能将项目改成c/c++,或者源代码怎么改动一下呢?
回复

使用道具 举报

 楼主| 发表于 2006-5-12 10:51:16 | 显示全部楼层
看来还是得自问自答了,使用强制转换就可以解决。

c++挺好的,就是检查太严格了。
回复

使用道具 举报

发表于 2006-5-14 17:58:18 | 显示全部楼层
自问自答挺好的啊。
检查严格也挺好的啊,总比事后查bug强。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2025-2-7 00:56 , Processed in 0.025814 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

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