diff --git a/Source/Engine/Platform/Base/NetworkBase.cpp b/Source/Engine/Platform/Base/NetworkBase.cpp index fb1fb7ade..389f58335 100644 --- a/Source/Engine/Platform/Base/NetworkBase.cpp +++ b/Source/Engine/Platform/Base/NetworkBase.cpp @@ -31,6 +31,11 @@ bool NetworkBase::BindSocket(NetworkSocket& socket, NetworkEndPoint& endPoint) return false; } +bool NetworkBase::Listen(NetworkSocket& socket, int32 queueSize) +{ + return false; +} + bool NetworkBase::Accept(NetworkSocket& serverSock, NetworkSocket& newSock, NetworkEndPoint& newEndPoint) { return false; diff --git a/Source/Engine/Platform/Base/NetworkBase.h b/Source/Engine/Platform/Base/NetworkBase.h index 749c5df3c..6b33d7b1e 100644 --- a/Source/Engine/Platform/Base/NetworkBase.h +++ b/Source/Engine/Platform/Base/NetworkBase.h @@ -53,6 +53,7 @@ class FLAXENGINE_API NetworkBase static bool DestroySocket(NetworkSocket& socket); static bool ConnectSocket(NetworkSocket& socket, NetworkEndPoint& endPoint); static bool BindSocket(NetworkSocket& socket, NetworkEndPoint& endPoint); + static bool Listen(NetworkSocket& socket, int32 queueSize); static bool Accept(NetworkSocket& serverSock, NetworkSocket& newSock, NetworkEndPoint& newEndPoint); static bool IsReadable(NetworkSocket& socket, uint64* size); static int32 WriteSocket(NetworkSocket socket, byte* data, uint32 length, NetworkEndPoint* endPoint = nullptr); diff --git a/Source/Engine/Platform/Win32/Win32Network.cpp b/Source/Engine/Platform/Win32/Win32Network.cpp index 29f5ef495..cec785225 100644 --- a/Source/Engine/Platform/Win32/Win32Network.cpp +++ b/Source/Engine/Platform/Win32/Win32Network.cpp @@ -203,6 +203,16 @@ bool Win32Network::BindSocket(NetworkSocket& socket, NetworkEndPoint& endPoint) return false; } +bool Win32Network::Listen(NetworkSocket& socket, int32 queueSize) +{ + if (listen(*(SOCKET*)socket.Data, (int32)queueSize) == SOCKET_ERROR) + { + LOG(Error, "Unable to listen ! Socket : {0} Error : {1}", GetLastErrorMessage().Get()); + return true; + } + return false; +} + bool Win32Network::Accept(NetworkSocket& serverSock, NetworkSocket& newSock, NetworkEndPoint& newEndPoint) { if (serverSock.Protocol != NetworkProtocolType::Tcp) diff --git a/Source/Engine/Platform/Win32/Win32Network.h b/Source/Engine/Platform/Win32/Win32Network.h index fc1ca093b..8f4d375d0 100644 --- a/Source/Engine/Platform/Win32/Win32Network.h +++ b/Source/Engine/Platform/Win32/Win32Network.h @@ -19,6 +19,7 @@ public: static bool DestroySocket(NetworkSocket& socket); static bool ConnectSocket(NetworkSocket& socket, NetworkEndPoint& endPoint); static bool BindSocket(NetworkSocket& socket, NetworkEndPoint& endPoint); + static bool Listen(NetworkSocket& socket, int32 queueSize); static bool Accept(NetworkSocket& serverSock, NetworkSocket& newSock, NetworkEndPoint& newEndPoint); static bool IsReadable(NetworkSocket& socket, uint64* size); static int32 WriteSocket(NetworkSocket socket, byte* data, uint32 length, NetworkEndPoint* endPoint = nullptr);