Files
OmniSocketGo/c/include/transport_kcp.h
2026-03-30 13:52:56 +08:00

44 lines
1.6 KiB
C

#ifndef OMNI_TRANSPORT_KCP_H
#define OMNI_TRANSPORT_KCP_H
#include "kcp_packet_debug.h"
#include "kcp_session_stats.h"
#include "latencylog.h"
#ifdef __cplusplus
extern "C" {
#endif
#define KCP_NODELAY 1
#define KCP_INTERVAL 10
#define KCP_RESEND 2
#define KCP_NC 1
#define KCP_WND_SIZE 256
#define KCP_MTU 1400
#define KCP_DEFAULT_STATS_INTERVAL_MS 100
typedef struct kcp_conn kcp_conn_t;
typedef struct kcp_listener kcp_listener_t;
kcp_conn_t *kcp_conn_dial(const char *server_addr, const char *bind_ip, const char *bind_device, kcp_packet_debug_logger_t *packet_logger, latency_logger_t *logger, const char *node_role, const char *node_id, kcp_session_stats_logger_t *stats_logger, int stats_interval_ms);
int kcp_conn_configure_runtime(kcp_conn_t *conn, latency_logger_t *logger, const char *node_role, const char *node_id, kcp_session_stats_logger_t *stats_logger, int stats_interval_ms);
int kcp_conn_send(kcp_conn_t *conn, const message_t *msg);
int kcp_conn_receive(kcp_conn_t *conn, message_t *out_msg);
int kcp_conn_close(kcp_conn_t *conn);
void kcp_conn_free(kcp_conn_t *conn);
uint32_t kcp_conn_conv(const kcp_conn_t *conn);
int kcp_conn_local_addr(const kcp_conn_t *conn, struct sockaddr_storage *addr, socklen_t *addr_len);
kcp_listener_t *kcp_listener_listen(const char *listen_addr, const char *bind_device, kcp_packet_debug_logger_t *packet_logger, const char *node_role, const char *node_id);
kcp_conn_t *kcp_listener_accept(kcp_listener_t *listener);
int kcp_listener_close(kcp_listener_t *listener);
void kcp_listener_free(kcp_listener_t *listener);
int kcp_session_stats_parse_interval_ms(const char *raw, int *out_ms);
#ifdef __cplusplus
}
#endif
#endif