00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_SOCKETUDP_HPP
00026 #define SFML_SOCKETUDP_HPP
00027
00029
00031 #include <SFML/Network/Sockets.hpp>
00032 #include <cstddef>
00033
00034
00035 namespace sf
00036 {
00037 class Packet;
00038 class IPAddress;
00039 template <typename> class Selector;
00040
00045 class SFML_API SocketUDP
00046 {
00047 public :
00048
00053 SocketUDP();
00054
00066 bool Send(const char* Data, std::size_t Size, const IPAddress& Address, unsigned short Port);
00067
00082 bool Receive(char* Data, std::size_t MaxSize, std::size_t& SizeReceived, IPAddress& Address, unsigned short Port);
00083
00094 bool Send(Packet& PacketToSend, const IPAddress& Address, unsigned short Port);
00095
00108 bool Receive(Packet& PacketToReceive, IPAddress& Address, unsigned short Port);
00109
00116 bool Close();
00117
00126 bool operator ==(const SocketUDP& Other) const;
00127
00136 bool operator !=(const SocketUDP& Other) const;
00137
00148 bool operator <(const SocketUDP& Other) const;
00149
00150 private :
00151
00152 friend class Selector<SocketUDP>;
00153
00161 SocketUDP(priv::SocketType Descriptor);
00162
00167 void Create();
00168
00170
00172 priv::SocketType mySocket;
00173 unsigned short myPort;
00174 };
00175
00176 }
00177
00178
00179 #endif // SFML_SOCKETUDP_HPP