Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
socket.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5#pragma once
6
7#include "irrlichttypes.h"
8
9class Address;
10
11void sockets_init();
12void sockets_cleanup();
13
15{
16public:
17 UDPSocket() = default;
18 UDPSocket(bool ipv6); // calls init()
19 ~UDPSocket();
20 bool init(bool ipv6, bool noExceptions = false);
21
22 void Bind(Address addr);
23
24 void Send(const Address &destination, const void *data, int size);
25 // Returns -1 if there is no data
26 int Receive(Address &sender, void *data, int size);
27 void setTimeoutMs(int timeout_ms);
28 // Returns true if there is data, false if timeout occurred
29 bool WaitData(int timeout_ms);
30
31 // Debugging purposes only
32 int GetHandle() const { return m_handle; };
33
34private:
35 int m_handle = -1;
36 int m_timeout_ms = -1;
37 unsigned short m_addr_family = 0;
38};
Definition address.h:27
Definition socket.h:15
bool init(bool ipv6, bool noExceptions=false)
Definition socket.cpp:68
void Bind(Address addr)
Definition socket.cpp:112
int m_handle
Definition socket.h:35
void Send(const Address &destination, const void *data, int size)
Definition socket.cpp:166
int GetHandle() const
Definition socket.h:32
unsigned short m_addr_family
Definition socket.h:37
int m_timeout_ms
Definition socket.h:36
UDPSocket()=default
int Receive(Address &sender, void *data, int size)
Definition socket.cpp:206
void setTimeoutMs(int timeout_ms)
Definition socket.cpp:252
~UDPSocket()
Definition socket.cpp:101
bool WaitData(int timeout_ms)
Definition socket.cpp:257
void sockets_cleanup()
Definition socket.cpp:50
void sockets_init()
Definition socket.cpp:39