Go to the documentation of this file.00001
00002
00003
00004
00005 #pragma once
00006
00007 #include "../base/Setup.h"
00008
00009 #ifdef MPMA_COMPILE_NET
00010
00011 #include "Common.h"
00012
00013 #include <vector>
00014
00015 class MPMAMemoryManager;
00016
00017 namespace NET
00018 {
00020 class UDPClient
00021 {
00022 public:
00024 static UDPClient* Create(uint16 localPort=0, bool allowBroadcast=false, bool openNatAutomatically=true);
00025
00027 static void FreeClient(UDPClient *client);
00028
00030 bool Send(const Address &addr, const void *data, nuint dataLen);
00031
00033 inline uint16 GetLocalPort() const
00034 { return localPortUsed; }
00035
00037 bool Receive(std::vector<uint8> &data, Address *source=0);
00038
00039
00040
00041 private:
00042
00043 UDPClient();
00044 inline ~UDPClient() {}
00045 inline UDPClient(const UDPClient&) {}
00046 inline void operator=(const UDPClient&) {}
00047 friend class ::MPMAMemoryManager;
00048
00049
00050 nsint sock;
00051 uint16 localPortUsed;
00052 bool isInBlockingMode;
00053 bool autoUPNP;
00054 };
00055 }
00056
00057 #endif //#ifdef MPMA_COMPILE_NET