00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #if !defined(AFX_UDPCRAFTER_H__E0C62C93_E6F6_4935_A5C9_F129A76F357A__INCLUDED_)
00037 #define AFX_UDPCRAFTER_H__E0C62C93_E6F6_4935_A5C9_F129A76F357A__INCLUDED_
00038
00039 #if _MSC_VER > 1000
00040 #pragma once
00041 #endif // _MSC_VER > 1000
00042
00043 #include "UDPSocket.h"
00044 #include "IPCrafter.h"
00045
00046 KOMODIA_NAMESPACE_START
00047
00048 class CUDPCrafter : public CUDPSocket,
00049 public CIPCrafter
00050 {
00051 public:
00052
00053 char* GetCraftedPacket(unsigned short usSourcePort,
00054 unsigned long ulDestinationAddress,
00055 const char* pBuffer,
00056 unsigned long ulBufferSize,
00057 unsigned short usDestinationPort,
00058 unsigned short& usTotalSize)const;
00059
00060
00061 void SetUDPUseDefaultChecksum(BOOL bDefault);
00062
00063
00064 void SetUDPChecksum(unsigned short usChecksum);
00065
00066
00067 void SetUDPDefault();
00068
00069
00070 CUDPCrafter();
00071 virtual ~CUDPCrafter();
00072 protected:
00073
00074 virtual LPIpHeader ConstructIPHeader (unsigned char ucProtocol,
00075 unsigned short usFragmentationFlags,
00076 unsigned char ucTTL,
00077 unsigned short usIdentification,
00078 unsigned char ucHeaderLength)const;
00079
00080
00081 virtual void FinalIPHeader(LPIpHeader lpHead)const;
00082
00083
00084 virtual void FinalUDPHeader(LPUDPHeader lpHeader)const;
00085 private:
00086
00087 CUDPCrafter(const CUDPCrafter& rCrafter);
00088
00089
00090 CUDPCrafter& operator=(const CUDPCrafter& rCrafter);
00091
00092
00093 unsigned short m_usUDPChecksum;
00094 BOOL m_UDPDefaultChecksum;
00095 };
00096
00097 KOMODIA_NAMESPACE_END
00098
00099 #endif // !defined(AFX_UDPCRAFTER_H__E0C62C93_E6F6_4935_A5C9_F129A76F357A__INCLUDED_)