错误提示:accept: Invalid argument

来源:互联网 发布:液压绘图软件 编辑:程序博客网 时间:2024/05/20 16:13


今天在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)


0 0