-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsocketlib2.h
More file actions
63 lines (49 loc) · 3.21 KB
/
socketlib2.h
File metadata and controls
63 lines (49 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef SOCKETLIB2_SOCKETLIB2_H
#define SOCKETLIB2_SOCKETLIB2_H
#ifdef SocketLib2_EXPORTS
#define SOCKETLIB2_API __declspec(dllexport)
#else
#define SOCKETLIB2_API __declspec(dllimport)
#endif
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include "WinSock2.h"
#include "Ws2tcpip.h"
#include <cstdint>
#include <string>
using namespace std;
#ifdef _WIN64
typedef uint64_t SOCKETLIB_HANDLE;
typedef uint64_t SOCKETLIB_PTR;
#else
typedef uint32_t SOCKETLIB_HANDLE;
typedef uint32_t SOCKETLIB_PTR;
#endif
bool close_socket(SOCKETLIB_HANDLE sock, int& error);
SOCKETLIB2_API void __stdcall delete_all_socket(int ignored);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall open_socket(int& error);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall open_socket_dgam_for_send(int& error);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall open_socket_dgam_for_receive(int& error);
SOCKETLIB2_API void __stdcall disconnect_socket(SOCKETLIB_HANDLE sock);
//TODO: store allocated resources, and remove them when disconnecting socket
SOCKETLIB2_API bool __stdcall bind(SOCKETLIB_HANDLE handle, unsigned char* addr, int port, int& error);
SOCKETLIB2_API bool __stdcall bind_any(SOCKETLIB_HANDLE handle, int port, int& error);
SOCKETLIB2_API bool __stdcall listen(SOCKETLIB_HANDLE handle, int queue_size, int& error);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall create_server(unsigned char* addr, int port, int queue_size, int& err);
SOCKETLIB2_API bool __stdcall connect(SOCKETLIB_HANDLE handle, unsigned char* addr, int port, int& error);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall create_client(unsigned char* addr, int port, int& error);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall create_accept_process(SOCKETLIB_HANDLE socket);
SOCKETLIB2_API void __stdcall delete_accept(SOCKETLIB_HANDLE accept_handle);
SOCKETLIB2_API bool __stdcall poll_accept(SOCKETLIB_HANDLE accept_handle, int wait_for, bool restart);
SOCKETLIB2_API bool __stdcall get_accept_result(SOCKETLIB_HANDLE accept_handle, SOCKETLIB_HANDLE& client_sock, unsigned char* addr_buf, unsigned int addr_buf_size, unsigned short& port, int& error);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall create_send_queue(SOCKETLIB_HANDLE sock, unsigned int max_queue_size, unsigned int buffer_size);
SOCKETLIB2_API void __stdcall delete_send_queue(SOCKETLIB_HANDLE queue_handle);
SOCKETLIB2_API int __stdcall get_queue_error(SOCKETLIB_HANDLE queue_handle);
SOCKETLIB2_API void __stdcall send_msg(SOCKETLIB_HANDLE queue_handle, unsigned char* msg);
SOCKETLIB2_API SOCKETLIB_HANDLE __stdcall create_receive_buffer(SOCKETLIB_HANDLE sock, unsigned int size);
SOCKETLIB2_API void __stdcall delete_receive_buffer(SOCKETLIB_HANDLE buffer);
SOCKETLIB2_API bool __stdcall poll_msg(SOCKETLIB_HANDLE buffer, int wait_ms, bool restart);
SOCKETLIB2_API bool __stdcall get_msg(SOCKETLIB_HANDLE buffer, unsigned char* msg_buf, int buf_size, int& err);
SOCKETLIB2_API int __stdcall send_dgram(SOCKETLIB_HANDLE handle, unsigned char* addr, int port, unsigned char* msg, int& error);
SOCKETLIB2_API int __stdcall receive_dgram_sync(SOCKETLIB_HANDLE handle, unsigned char* addr, int port, unsigned char* buffer, int bufsize, int& error);
SOCKETLIB2_API int __stdcall send_dgram_broadcast(SOCKETLIB_HANDLE handle, int port, unsigned char* msg, int& error);
#endif //SOCKETLIB2_SOCKETLIB2_H