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