Основной код:
CODE
SOCKET Socket;
char ServerAddress [100] = "192.168.1.1";
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr(ServerAddress);
if (service.sin_addr.s_addr == INADDR_NONE)
{
MessageBox (hwndMain, _T("Bad server address"), _T("Socket error!"), 0);
ExitProcess (-1);
}
service.sin_port = htons(0x1010);
//----------------------
// Connect to server.
while (1)
{
Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (Socket == INVALID_SOCKET)
{
MessageBox (hwndMain, _T("Error at socket(): %ld\n"), _T("Socket error"), 0);
return -1;
}
if ( connect( Socket, (sockaddr *) &service, sizeof(service) ) == SOCKET_ERROR)
{
Sleep (100);
}
else
{
while (1)
{
int ReadCount = 0;
char writebuf[10];
for (int i = 0; i < 128; i++)
{
writebuf[0] = 0x31;
writebuf[1] = 0x66;
writebuf[2] = i + 1;
if (sendto (Socket, writebuf, 3, 0, NULL, NULL) == SOCKET_ERROR)
{
return;
}
int ReadWait = ((i + 1) << 10) - ReadCount;
ReadCount += recvfrom (Socket, &((char *)Buffer)[ReadCount], ReadWait, 0, NULL, NULL);
if (ReadWait > 16000)
{
Sleep (5);
}
}
}
}
}