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_SOCKETTCP_HPP
00026 #define SFML_SOCKETTCP_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
00041
00046 class SFML_API SocketTCP
00047 {
00048 public :
00049
00054 SocketTCP();
00055
00065 bool Connect(unsigned short Port, const IPAddress& HostAddress);
00066
00075 bool Listen(unsigned short Port);
00076
00087 SocketTCP Accept(IPAddress* Address = NULL);
00088
00099 bool Send(const char* Data, std::size_t Size);
00100
00114 bool Receive(char* Data, std::size_t MaxSize, std::size_t& SizeReceived);
00115
00125 bool Send(Packet& PacketToSend);
00126
00138 bool Receive(Packet& PacketToReceive);
00139
00146 bool Close();
00147
00156 bool operator ==(const SocketTCP& Other) const;
00157
00166 bool operator !=(const SocketTCP& Other) const;
00167
00178 bool operator <(const SocketTCP& Other) const;
00179
00180 private :
00181
00182 friend class Selector<SocketTCP>;
00183
00191 SocketTCP(priv::SocketType Descriptor);
00192
00194
00196 priv::SocketType mySocket;
00197 };
00198
00199 }
00200
00201
00202 #endif // SFML_SOCKETTCP_HPP