錯誤提示:accept: Invalid argument


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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章