Трымай
| Код | static int timed_connect( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, DWORD delay_sec=15, DWORD delay_usec=0 ) { int nRetval=SOCKET_ERROR; unsigned long arg=1; if(ioctlsocket(s,FIONBIO,&arg)!=SOCKET_ERROR) { connect(s,name,namelen); TIMEVAL tv; fd_set fds_write; tv.tv_sec=delay_sec; tv.tv_usec=delay_usec; FD_ZERO(&fds_write); FD_SET(s, &fds_write); int iSocketsSet = select(0, NULL, &fds_write, NULL, &tv); if (iSocketsSet != SOCKET_ERROR && iSocketsSet) { if (FD_ISSET(s, &fds_write)) { nRetval=0; } } arg=0; ioctlsocket(s,FIONBIO,&arg); } return nRetval; }
|
|