Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_network.h"
00035 #include "../../Core/System/sharedptr.h"
00036
00037 class CL_Event;
00038 class CL_SocketName;
00039 class CL_UDPSocket_Impl;
00040
00044 class CL_API_NETWORK CL_UDPSocket
00045 {
00048
00049 public:
00050 CL_UDPSocket();
00051
00056 CL_UDPSocket(const CL_SocketName &local_name, bool force_bind = true);
00057
00062 CL_UDPSocket(int socket, bool close_socket);
00063
00064 ~CL_UDPSocket();
00065
00069
00070 public:
00071
00075 int get_handle() const;
00076
00080 CL_SocketName get_local_name() const;
00081
00085 CL_Event get_read_event();
00086
00090 CL_Event get_write_event();
00091
00095
00096 public:
00097
00102 void bind(const CL_SocketName &local_name, bool force_bind = true);
00103
00108 void set_handle(int socket, bool close_socket);
00109
00117 int send(const void *data, int len, const CL_SocketName &to);
00118
00126 int receive(void *data, int len, CL_SocketName &out_from);
00127
00135 int peek(void *data, int len, CL_SocketName &out_from);
00136
00140
00141 private:
00142 CL_SharedPtr<CL_UDPSocket_Impl> impl;
00144 };
00145