00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00026
00028 #include <SFML/AdvancedNetwork/Client.hpp>
00029 #include <SFML/Network/Packet.hpp>
00030
00031
00035 sfClient::~sfClient()
00036 {
00037
00038 Disconnect();
00039 }
00040
00041
00045 void sfClient::Connect(const sfIPAddress& Server, unsigned short Port)
00046 {
00047
00048 if (myIsConnected)
00049 Disconnect();
00050
00051
00052 myServer = Server;
00053 myPort = Port;
00054 myIsConnected = true;
00055
00056
00057 Launch();
00058 }
00059
00060
00064 void sfClient::Disconnect()
00065 {
00066
00067 myIsConnected = false;
00068
00069
00070 Wait();
00071 }
00072
00073
00077 bool sfClient::IsConnected() const
00078 {
00079 return myIsConnected;
00080 }
00081
00082
00086 void sfClient::Run()
00087 {
00088
00089 if (!mySocket.Connect(myPort, myServer))
00090 {
00091 myIsConnected = false;
00092 return;
00093 }
00094
00095
00096 OnServerConnected();
00097
00098
00099 while (myIsConnected)
00100 {
00101
00102 sfPacket Packet;
00103 myIsConnected = mySocket.Receive(Packet);
00104
00105
00106 if (myIsConnected)
00107 OnPacketReceived(Packet);
00108 }
00109
00110
00111 OnServerDisconnected();
00112
00113
00114 mySocket.Close();
00115 }
00116
00117
00121 void sfClient::Send(sfPacket& Packet)
00122 {
00123
00124 if (!mySocket.Send(Packet))
00125 myIsConnected = false;
00126 }
00127
00128
00132 void sfClient::OnServerConnected()
00133 {
00134
00135 }
00136
00137
00141 void sfClient::OnPacketReceived(sfPacket& Packet)
00142 {
00143
00144 }
00145
00146
00150 void sfClient::OnServerDisconnected()
00151 {
00152
00153 }