typedef struct ip_hdr
{
unsigned char ip_verlen;
unsigned char ip_tos;
unsigned short ip_totallength;
unsigned short ip_id;
unsigned short ip_offset;
unsigned char ip_ttl;
unsigned char ip_protocol;
unsigned short ip_checksum;
unsigned int ip_srcaddr;
unsigned int ip_destaddr;
} IP_HDR,*PIP_HDR,FAR* LPIP_HDR;
typedef struct udp_hdr
{
unsigned short src_portno;
unsigned short dst_portno;
unsigned short udp_length;
unsigned short udp_checksum;
} UDP_HDR,*PUDP_HDR;
unsigned long dwToIP,dwFromIP;
unsigned short iToPort,iFromPort;
DWORD dwCount;
char strMessage[MAX_MESSAGE];
void usage(char *progname)
{
printf("usage: %s [-fp:int] [-fi:str] [-tp:int] [-ti:str] [-n:int] [-m:str]\n",progname);
printf(" -fp:int From(sender) port number\n");
printf(" -fi:IP From(sender) IP address\n");
printf(" -fp:int To(recipient) port number\n");
printf(" -fi:IP To(recipient) Ip address\n");
printf(" -n:int Number of times to read message\n");
printf(" -m:str Size of buffer to read\n\n");
ExitProcess(1);
}