int main()
{
WSADATA wsData;
SOCKET sock = INVALID_SOCKET;
struct sockaddr_in addr;
char Ip[16] = {0};
u_short Prot = 16999;
char data[2048] = { 0 };
int nRel = 0;
int index = 0;
u_long mode = 1;
struct timeval timeout;
timeout.tv_sec = 0;
timeout.tv_usec = 10000*6;
fd_set w;
fd_set r;
nRel = WSAStartup(MAKEWORD(2,2), &wsData);
if(0 != nRel)
{
Log("WSAStartup Failed!\n");
getchar();
return 0;
}
else
{
Log("WSAStartup successful!\n");
}
for(index=0; index<255; index++)
{
sprintf(Ip, "192.168.1.%d", index);
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sock != INVALID_SOCKET)
{
OutputDebugString("socket create successful!\n");
}
nRel = ioctlsocket(sock, FIONBIO, &mode);
if(nRel == SOCKET_ERROR)
{
Log("ioctlsocket Failed!\n");
}
FD_ZERO(&w);
FD_SET(sock, &w);
FD_ZERO(&r);
FD_SET(sock, &r);
addr.sin_family = AF_INET;
addr.sin_port = htons(Prot);
addr.sin_addr.s_addr = inet_addr(Ip);
nRel = connect(sock, (sockaddr*)(&addr), sizeof(addr));
nRel = select(0, 0, &w, 0, &timeout);
if((nRel == SOCKET_ERROR) || (nRel == 0))
{
printf("connect host:%s:%d failed!\n", Ip, Prot);
closesocket(sock);
}
else
{
printf("------------------------------------connect host:%s:%d successful!\n", Ip, Prot);
select(0, &r, 0, 0, &timeout);
nRel = recv(sock, data, sizeof(data), 0);
if(SOCKET_ERROR == nRel)
{
printf("Data recv Failed!\n");
}
else
{
printf("------------------------------------recv Data: %s\n", data);
closesocket(sock);
}
}
}
closesocket(sock);
WSACleanup();
getchar();
return 0;
}