//Our TCP socket, that encapsulates the UDP socket
class CTCPScanner : public CTCPSocketAsync
{
public:
//Overide the connect
virtual BOOL Connect(unsigned short usSourcePort,
IP aDestinationAddress,
unsigned short usDestinationPort,
BOOL bDisableAsync=FALSE,
BOOL bForceErrorEvent=FALSE);
//Create the socket
virtual BOOL Create();
//Ctor and Dtor
CTCPScanner();
virtual ~CTCPScanner();
protected:
//No events
NO_OnSocketAccept
NO_OnSocketOOB
NO_OnSocketWrite
NO_OnSocketTimeout
NO_OnSocketConnect
NO_OnSocketClose
NO_OnSocketReceive
private:
//Our UDP socket
CUDPSocket* m_pSocket;
};
//Our sniffing socket
class CSniffingSocket : public CICMPSocketAsync
{
public:
//Ctor and Dtor
CSniffingSocket(CUDPScanner* pScanner);
virtual ~CSniffingSocket();
protected:
//No events
NO_OnSocketAccept
NO_OnSocketOOB
NO_OnSocketWrite
NO_OnSocketTimeout
NO_OnSocketConnect
NO_OnSocketClose
//Our sniff handler
virtual BOOL OnSocketReceive(int iErrorCode);
private:
//Our father
CUDPScanner* m_pFather;
};