- 论坛徽章:
- 0
|
我现在写unix 网络中 socket连接 连接 后connect 返回-1 但errno 却是22(EINVAL) 资料上说因该EINPROGRESS 以下是部分代码,望各位给予指点:
... ...
socket_id = socket(PF_LOCAL,SOCK_STREAM,0);
... ...
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = addr->net_port;
sprintf(TempAddr,"%d.%d.%d.%d",addr->net_addr[0],addr->net_addr[1],addr->net_addr[2],addr->net_addr[3]);
serv_addr.sin_addr.s_addr = inet_addr(TempAddr);
bzero(&(serv_addr.sin_zero), ;
flags = fcntl(socketId,F_GETFL,0);
fcntl(socketId,F_SETFL,flags|O_NONBLOCK);
ret_val = connect(socketId, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr));
之后的errno 为22 |
|