Add listen implementation.

This commit is contained in:
Jean-Baptiste Perrier
2021-01-24 00:02:24 +01:00
parent 9b300fe074
commit 3ab54bd7e1
4 changed files with 17 additions and 0 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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)

View File

@@ -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);