当前位置: 技术问答>linux和unix
为什么SOCKET编程时遇到这么奇怪的问题, acceptt接受客户端时总是返回-1,请高手指教,急!!!!!!!!!!!!!!
来源: 互联网 发布时间:2016-02-18
本文导语: temp_sock_descriptor=accept(sock_descriptor,(struct sockaddr*)&pin,&size_of_addr); if(temp_sock_descriptor==-1){ perror("call to accept!"); }temp_sock_descriptor=accept(sock_descriptor,(struct sockaddr*)&pin,&size_of_addr); ...
temp_sock_descriptor=accept(sock_descriptor,(struct sockaddr*)&pin,&size_of_addr);
if(temp_sock_descriptor==-1){
perror("call to accept!");
}temp_sock_descriptor=accept(sock_descriptor,(struct sockaddr*)&pin,&size_of_addr);
if(temp_sock_descriptor==-1){
perror("call to accept!");
}
程序运行时出现如下错误:
call to accept!: Invalid argument
accept(sock_descriptor,(struct sockaddr*)&pin,&size_of_addr);返回结果 总是-1,不知为什么,以前是没有问题的,现在改用FEDRO 6 操作系统,就会这样了,请指明,及列出具体方法,非常感谢!
if(temp_sock_descriptor==-1){
perror("call to accept!");
}temp_sock_descriptor=accept(sock_descriptor,(struct sockaddr*)&pin,&size_of_addr);
if(temp_sock_descriptor==-1){
perror("call to accept!");
}
程序运行时出现如下错误:
call to accept!: Invalid argument
accept(sock_descriptor,(struct sockaddr*)&pin,&size_of_addr);返回结果 总是-1,不知为什么,以前是没有问题的,现在改用FEDRO 6 操作系统,就会这样了,请指明,及列出具体方法,非常感谢!
|
sock_descriptor,(struct sockaddr*)&pin,&size_of_addr
这些变量的定义是不是什么?是不是类型不匹配.
这些变量的定义是不是什么?是不是类型不匹配.
|
应该没问题,但是似乎你该查查你的参数
不行把errno和strerror(errno)的信息都打出来看看,也许有帮助
不行把errno和strerror(errno)的信息都打出来看看,也许有帮助
|
试试调用前size_of_addr = sizeof(struct sock_addr)
|
bzero(&pin, sizeof(pin))做了么?