Thanks for replying me,<br>I init the variable sock like below :<br> Socket Sock;<br><br> sock = socket( AF_INET, SOCK_STREAM, 0 );<br> if (sock == INVALID_SOCKET) {<br> *retErrVal = SGetLastError();<br> return( 0 );<br> }<br><br> memset( &addr, 0, sizeof( addr ));<br> addr.sin_family = AF_INET;<br> addr.sin_port = htons( (unsigned short) port );<br> addr.sin_addr.s_addr = inet_addr( IPAddress );<br> res = connect( sock, (struct sockaddr *) &addr, <br> sizeof( addr ) );<br> if (res == SOCKET_ERROR) {<br> *retErrVal = SGetLastError();<br> closesocket( sock );<br> return( 0 );<br> }<br> .... <br> timeout.tv_sec = 0;<br> timeout.tv_usec = 1;<br> FD_ZERO( &f_set );<br> FD_SET( sock, &f_set );<br> if( (res = select( sock + 1, NULL, &f_set, <br> NULL, &timeout )) != 1 ) <br> return 1; // Socket Closed <br> return 0; // Socket still Connect<br><br>sorry, I write down not the complete version , it'll be long. <br><br>But do I use the correct statement :<br> * 'select' the socket for the write_set<br><br>on purpose to simulate 'ping' socket just like ping an address without send any data to the client/server<br><br>Thanks a lot