Network: Add support for sending/receiving NetPacket over UDP/TCP
Former-commit-id: 5c09a5fa8b499e4204d2312f6d04d8554093a5a4
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#define NAZARA_TCPCLIENT_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/ByteArray.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Core/Stream.hpp>
|
||||
#include <Nazara/Network/AbstractSocket.hpp>
|
||||
@@ -15,6 +16,8 @@
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
class NetPacket;
|
||||
|
||||
class NAZARA_NETWORK_API TcpClient : public AbstractSocket, public Stream
|
||||
{
|
||||
friend class TcpServer;
|
||||
@@ -43,8 +46,10 @@ namespace Nz
|
||||
inline bool IsKeepAliveEnabled() const;
|
||||
|
||||
bool Receive(void* buffer, std::size_t size, std::size_t* received);
|
||||
bool ReceivePacket(NetPacket* packet);
|
||||
|
||||
bool Send(const void* buffer, std::size_t size, std::size_t* sent);
|
||||
bool SendPacket(const NetPacket& packet);
|
||||
|
||||
bool SetCursorPos(UInt64 offset) override;
|
||||
|
||||
@@ -62,7 +67,16 @@ namespace Nz
|
||||
void Reset(SocketHandle handle, const IpAddress& peerAddress);
|
||||
std::size_t WriteBlock(const void* buffer, std::size_t size) override;
|
||||
|
||||
struct PendingPacket
|
||||
{
|
||||
std::size_t received = 0;
|
||||
ByteArray data;
|
||||
UInt16 netcode;
|
||||
bool headerReceived = false;
|
||||
};
|
||||
|
||||
IpAddress m_peerAddress;
|
||||
PendingPacket m_pendingPacket;
|
||||
UInt64 m_keepAliveInterval;
|
||||
UInt64 m_keepAliveTime;
|
||||
bool m_isLowDelayEnabled;
|
||||
@@ -72,4 +86,4 @@ namespace Nz
|
||||
|
||||
#include <Nazara/Network/TcpClient.inl>
|
||||
|
||||
#endif // NAZARA_TCPCLIENT_HPP
|
||||
#endif // NAZARA_TCPCLIENT_HPP
|
||||
|
||||
Reference in New Issue
Block a user