关于SCOKET 编程
发表于 : 2008-01-27 21:47
在SOCKET的编写中发现这样一个问题,就是accpet的传递的参数中使用socklen_t这个数据类型,不知道是什么类型,在原来使用int的类型,使用gcc编译的时候老是提示类型不对不知道为什么:
具体如下:
原型:
extern int accept (int __fd, __SOCKADDR_ARG __addr,socklen_t *__restrict __addr_len);
编程
int sin_size,portnumber;
sin_size=sizeof(struct sockaddr_in);
if((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size))==-1)
编译结果:
TCPServer.C:63: 错误: 从类型 ‘int*’ 到类型 ‘socklen_t*’ 的转换无效
TCPServer.C:63: 错误: initializing argument 3 of ‘int accept(int, sockaddr*, socklen_t*)’
为什么?
具体如下:
原型:
extern int accept (int __fd, __SOCKADDR_ARG __addr,socklen_t *__restrict __addr_len);
编程
int sin_size,portnumber;
sin_size=sizeof(struct sockaddr_in);
if((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size))==-1)
编译结果:
TCPServer.C:63: 错误: 从类型 ‘int*’ 到类型 ‘socklen_t*’ 的转换无效
TCPServer.C:63: 错误: initializing argument 3 of ‘int accept(int, sockaddr*, socklen_t*)’
为什么?