S
SOCKET nFDSocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if( nFDSocket == SOCKET_ERROR )
{
// fehler
}
unsigned long nValue;
// in den non-blocking modus setzen
nValue = true;
if( ioctlsocket( nFDSocket, FIONBIO, &nValue ) == SOCKET_ERROR )
{
// fehler
}
sockaddr_in Addr = { 0 };
Addr.sin_family = AF_INET;
Addr.sin_addr.S_un.S_addr = inet_addr( "192.168.0.1" );
Addr.sin_port = htons( 135 );
if( connect( nFDSocket, (sockaddr*)&Addr, sizeof( Addr ) ) == SOCKET_ERROR &&
WSAGetLastError() != WSAEWOULDBLOCK )
{
// fehler
}
FD_SET FDSet;
FD_ZERO( &FDSet );
FD_SET( nFDSocket, &FDSet );
// 2.500 Sekunden
timeval Timeout;
Timeout.tv_sec = 2;
Timeout.tv_usec = 500;
int nStatus = select( 1, NULL, &FDSet, NULL, &Timeout );
if( nStatus == SOCKET_ERROR )
{
// fehler
}
else if( nStatus == 0 )
{
// timeout
}
// wieder in den blocking modus setzen
nValue = false;
if( ioctlsocket( nFDSocket, FIONBIO, &nValue ) == SOCKET_ERROR )
{
// fehler
}