summaryrefslogtreecommitdiff
path: root/samples/sockets/.svn/text-base/TCP.cpp.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'samples/sockets/.svn/text-base/TCP.cpp.svn-base')
-rw-r--r--samples/sockets/.svn/text-base/TCP.cpp.svn-base93
1 files changed, 93 insertions, 0 deletions
diff --git a/samples/sockets/.svn/text-base/TCP.cpp.svn-base b/samples/sockets/.svn/text-base/TCP.cpp.svn-base
new file mode 100644
index 0000000..25fbb9a
--- /dev/null
+++ b/samples/sockets/.svn/text-base/TCP.cpp.svn-base
@@ -0,0 +1,93 @@
+
+////////////////////////////////////////////////////////////
+// Headers
+////////////////////////////////////////////////////////////
+#include <SFML/Network.hpp>
+#include <iostream>
+
+
+////////////////////////////////////////////////////////////
+/// Create a client and connect it to a running server
+///
+////////////////////////////////////////////////////////////
+void DoClientTCP(unsigned short Port)
+{
+ // Ask for server address
+ sf::IPAddress ServerAddress;
+ do
+ {
+ std::cout << "Type address or name of the server to connect to : ";
+ std::cin >> ServerAddress;
+ }
+ while (!ServerAddress.IsValid());
+
+ // Create a TCP socket for communicating with server
+ sf::SocketTCP Client;
+
+ // Connect to the specified server
+ if (Client.Connect(Port, ServerAddress) != sf::Socket::Done)
+ return;
+ std::cout << "Connected to server " << ServerAddress << std::endl;
+
+ // Receive a message from the client
+ char Message[128];
+ std::size_t Received;
+ if (Client.Receive(Message, sizeof(Message), Received) != sf::Socket::Done)
+ return;
+
+ // Show it
+ std::cout << "Message received from server : \"" << Message << "\"" << std::endl;
+
+ // Define a message to send back to the server
+ char ToSend[] = "Hi, I'm a client !";
+
+ // Send the message
+ if (Client.Send(ToSend, sizeof(ToSend)) != sf::Socket::Done)
+ return;
+ std::cout << "Message sent to server : \"" << ToSend << "\"" << std::endl;
+
+ // Close the socket when we're done
+ Client.Close();
+}
+
+
+////////////////////////////////////////////////////////////
+/// Launch a server and wait for incoming connections
+///
+////////////////////////////////////////////////////////////
+void DoServerTCP(unsigned short Port)
+{
+ // Create a TCP socket for communicating with clients
+ sf::SocketTCP Server;
+
+ // Listen to a port for incoming connections
+ if (!Server.Listen(Port))
+ return;
+ std::cout << "Server is listening to port " << Port << ", waiting for connections... " << std::endl;
+
+ // Wait for a connection
+ sf::IPAddress ClientAddress;
+ sf::SocketTCP Client;
+ if (Server.Accept(Client, &ClientAddress) != sf::Socket::Done)
+ return;
+ std::cout << "Client connected : " << ClientAddress << std::endl;
+
+ // Send a message to the client
+ char ToSend[] = "Hi, I'm the server";
+ if (Client.Send(ToSend, sizeof(ToSend)) != sf::Socket::Done)
+ return;
+ std::cout << "Message sent to the client : \"" << ToSend << "\"" << std::endl;
+
+ // Receive a message back from the client
+ char Message[128];
+ std::size_t Received;
+ if (Client.Receive(Message, sizeof(Message), Received) != sf::Socket::Done)
+ return;
+
+ // Show the message
+ std::cout << "Message received from the client : \"" << Message << "\"" << std::endl;
+
+ // Close the sockets when we're done
+ Client.Close();
+ Server.Close();
+}