Pārlūkot izejas kodu

Expose transport to use when setting up network

Matt Benic 8 gadi atpakaļ
vecāks
revīzija
2244f275fa

+ 1 - 1
Source/Atomic/Network/MasterServerClient.cpp

@@ -576,7 +576,7 @@ bool MasterServerClient::StartServerAndRegisterWithMaster(unsigned short serverP
     }
 
     // First start the server
-    bool rc = network->StartServer(serverPort);
+    bool rc = network->StartServer(serverPort, kNet::SocketOverUDP);
 
     if (!rc)
     {

+ 6 - 6
Source/Atomic/Network/Network.cpp

@@ -206,7 +206,7 @@ void Network::ClientDisconnected(kNet::MessageConnection* connection)
     }
 }
 
-bool Network::Connect(const String& address, unsigned short port, Scene* scene, const VariantMap& identity)
+bool Network::Connect(const String& address, unsigned short port, kNet::SocketTransportLayer transport, Scene* scene, const VariantMap& identity)
 {
     ATOMIC_PROFILE(Connect);
 
@@ -217,7 +217,7 @@ bool Network::Connect(const String& address, unsigned short port, Scene* scene,
         OnServerDisconnected();
     }
 
-    kNet::SharedPtr<kNet::MessageConnection> connection = network_->Connect(address.CString(), port, kNet::SocketOverUDP, this);
+    kNet::SharedPtr<kNet::MessageConnection> connection = network_->Connect(address.CString(), port, transport, this);
     if (connection)
     {
         serverConnection_ = new Connection(context_, false, connection);
@@ -246,7 +246,7 @@ void Network::Disconnect(int waitMSec)
     serverConnection_->Disconnect(waitMSec);
 }
 
-bool Network::StartServer(unsigned short port)
+bool Network::StartServer(unsigned short port, kNet::SocketTransportLayer transport)
 {
     if (IsServerRunning())
         return true;
@@ -257,14 +257,14 @@ bool Network::StartServer(unsigned short port)
     serverPort_ = port;
 // ATOMIC END
 
-    if (network_->StartServer(port, kNet::SocketOverUDP, this, true) != 0)
+    if (network_->StartServer(port, transport, this, true) != 0)
     {
-        ATOMIC_LOGINFO("Started server on port " + String(port));
+        ATOMIC_LOGINFOF("Started %s server on port %i", (transport == kNet::SocketOverTCP ? "TCP" : "UDP"), port);
         return true;
     }
     else
     {
-        ATOMIC_LOGERROR("Failed to start server on port " + String(port));
+        ATOMIC_LOGERRORF("Failed to start %s server on port %i", (transport == kNet::SocketOverTCP ? "TCP" : "UDP"), port);
         return false;
     }
 }

+ 9 - 4
Source/Atomic/Network/Network.h

@@ -29,6 +29,11 @@
 
 #include <kNet/IMessageHandler.h>
 #include <kNet/INetworkServerListener.h>
+#include <kNet/Socket.h>
+
+#ifdef SendMessage
+#undef SendMessage
+#endif
 
 namespace Atomic
 {
@@ -64,12 +69,12 @@ public:
     /// Handle a client disconnection.
     virtual void ClientDisconnected(kNet::MessageConnection* connection);
 
-    /// Connect to a server using UDP protocol. Return true if connection process successfully started.
-    bool Connect(const String& address, unsigned short port, Scene* scene, const VariantMap& identity = Variant::emptyVariantMap);
+    /// Connect to a server using specified protocol. Return true if connection process successfully started.
+    bool Connect(const String& address, unsigned short port, kNet::SocketTransportLayer transport, Scene* scene, const VariantMap& identity = Variant::emptyVariantMap);
     /// Disconnect the connection to the server. If wait time is non-zero, will block while waiting for disconnect to finish.
     void Disconnect(int waitMSec = 0);
-    /// Start a server on a port using UDP protocol. Return true if successful.
-    bool StartServer(unsigned short port);
+    /// Start a server on a port using specified protocol. Return true if successful.
+    bool StartServer(unsigned short port, kNet::SocketTransportLayer transport);
     /// Stop the server.
     void StopServer();
     /// Broadcast a message with content ID to all client connections.