今天在linux写了一个简单的socket通信程序中,出现accept: Invalid argument错误提示。
定义的:
struct sockaddr_in server_sockaddr,client_sockaddr;
int sin_size,recvbytes;
int server_fd,client_fd;
涉及到的代码:
server_fd=socket(AF_INET,SOCK_STREAM,0);
if((client_fd=accept(server_fd,(struct sockaddr *)&client_sockaddr,&sin_size))==-1)
原因:accept的第3个参数必须为正数;
解决办法:将第3个参数初始化一下,如下:
struct sockaddr_in server_sockaddr,client_sockaddr;
int sin_size,recvbytes;
int server_fd,client_fd;
加入: sin_size=sizeof(struct sockaddr);
server_fd=socket(AF_INET,SOCK_STREAM,0);
if((client_fd=accept(server_fd,(struct sockaddr *)&client_sockaddr,&sin_size))==-1)