sources/network/udpsocket.h

changeset 189
248d0b85cbda
parent 186
9330b93d9946
child 190
90bf9049e5eb
equal deleted inserted replaced
188:5fc32e4b2a8c 189:248d0b85cbda
32 #include "../main.h" 32 #include "../main.h"
33 #include "ipaddress.h" 33 #include "ipaddress.h"
34 #include "bytestream.h" 34 #include "bytestream.h"
35 BEGIN_ZFC_NAMESPACE 35 BEGIN_ZFC_NAMESPACE
36 36
37 enum { MAX_DATAGRAM_LENGTH = 5120 }; 37 namespace net
38 {
39 constexpr int MAX_DATAGRAM_LENGTH = 5120;
40 struct Datagram;
41 class UDPSocket;
42 }
38 43
39 struct Datagram 44 struct net::Datagram
40 { 45 {
41 ByteArray message; 46 ByteArray message;
42 net::ip_address address; 47 net::ip_address address;
43 }; 48 };
44 49
45 // ------------------------------------------------------------------------------------------------- 50 // -------------------------------------------------------------------------------------------------
46 // 51 //
47 class UDPSocket 52 class net::UDPSocket
48 { 53 {
49 public: 54 public:
50 UDPSocket(); 55 UDPSocket();
51 virtual ~UDPSocket(); 56 virtual ~UDPSocket();
52 57 [[nodiscard]] bool bind(port_t port, std::ostream &errors);
53 bool bind (unsigned short port); 58 [[nodiscard]] bool read(Datagram& datagram, std::ostream& errors);
54 bool read (Datagram& datagram); 59 [[nodiscard]] bool send(const ip_address& address, const ByteArray& data, std::ostream &errors);
55 bool send (const net::ip_address& address, const ByteArray& data); 60 [[nodiscard]] bool set_blocking(bool a, std::ostream &errors);
56 bool set_blocking (bool a); 61 const int file_descriptor;
57 const std::string& error_string() const { return m_error; }
58 int file_descriptor() const { return m_socket; }
59
60 private:
61 static char HuffmanBuffer[131072];
62
63 std::string m_error;
64 int m_socket;
65 }; 62 };
66 63
67 END_ZFC_NAMESPACE 64 END_ZFC_NAMESPACE

mercurial