different socket structs instead of universal

This commit is contained in:
2023-01-15 21:34:04 +06:00
parent 288c73104c
commit 85d6ba2216
13 changed files with 268 additions and 172 deletions

View File

@@ -0,0 +1,40 @@
#pragma once
#if __cplusplus
extern "C" {
#endif
#include "knSocketUDP.h"
typedef struct knSocketUDP {
int64 socketfd;
knIPV4Endpoint localEndpoint;
} knSocketUDP;
ktid_declare(knSocketUDP);
///@return Maybe<knSocketUDP*> new socket
Maybe knSocketUDP_open();
///@return Maybe<void> error or nothing
Maybe knSocketUDP_close(knSocketUDP* socket);
///start listening at local endpoint
///@return Maybe<void> error or nothing
Maybe knSocketUDP_listen(knSocketUDP* socket, knIPV4Endpoint localEndp);
///@return Maybe<knSocketUDP*> new socket connected to client
Maybe knSocketUDP_accept(knSocketUDP* socket);
///@param dataLength 0-4294967295
///@return Maybe<void>
Maybe knSocketUDP_sendto(knSocketUDP* socket, char* data, uint32 dataLength, knIPV4Endpoint destination);
///@param buffer buffer for recieving data
///@param bufferLength 0-4294967295
///@return Maybe<uint64> recieved bytes amount
Maybe knSocketUDP_recieve(knSocketUDP* socket, char* buffer, uint32 bufferLength);
#if __cplusplus
}
#endif