// UDPSend.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <winsock2.h>
#include <iostream>
#include <string>
#include <windows.h>
#pragma comment(lib, "WS2_32")
using namespace std;
class CInitSock
{
public:
CInitSock(BYTE minorVer = 2, BYTE majorVer = 2)
{
WSADATA wsaData;
WORD sockVersion = MAKEWORD(minorVer, majorVer);
if(::WSAStartup(sockVersion, &wsaData) != 0)
exit(0);
}
~CInitSock()
{
::WSACleanup();
}
};
CInitSock initSock;
int main(int argc, char* argv[])
{
unsigned int port(0);
string strAddr("");
//cout << "Port: ";
//cin >> port;
cout << "Remote IP: ";
cin >> strAddr;
SOCKET s = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if(s == INVALID_SOCKET)
{
cout << "Socket() failed " << ::WSAGetLastError() << endl;
return 0;
}
sockaddr_in addrRemote;
addrRemote.sin_family = AF_INET;
addrRemote.sin_addr.S_un.S_addr = inet_addr(strAddr.data());
for(port = 1234; port < 1250; port++)
{
addrRemote.sin_port = htons(port);
if(port % 10 == 0)printf("\r%d", port);
char szText[100]("Hello World\r\n ");
char szPort[6]("");
strcat(szText, itoa(port, szPort, 10));
::sendto(s, strcat(szText, " 1"), strlen(szText), 0, (sockaddr*)&addrRemote, sizeof(addrRemote));
::sendto(s, strcat(szText, " 2"), strlen(szText), 0, (sockaddr*)&addrRemote, sizeof(addrRemote));
::sendto(s, strcat(szText, " 3"), strlen(szText), 0, (sockaddr*)&addrRemote, sizeof(addrRemote));
}
::closesocket(s);
return 0;
}