feat: 对接Python,暴露接口
This commit is contained in:
@@ -8,12 +8,24 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct kcp_client kcp_client_t;
|
||||
typedef struct kcp_client_recv_meta {
|
||||
message_type_t type;
|
||||
uint64_t id;
|
||||
char from[OMNI_MAX_PEER_ID];
|
||||
char to[OMNI_MAX_PEER_ID];
|
||||
char file_name[OMNI_MAX_FILE_NAME];
|
||||
size_t body_len;
|
||||
} kcp_client_recv_meta_t;
|
||||
|
||||
kcp_client_t *kcp_client_dial_with_options(const char *server_addr, const char *dial_addr, const char *peer_id, const char *bind_ip, const char *bind_device, const kcp_conn_options_t *options, latency_logger_t *logger, kcp_packet_debug_logger_t *packet_logger, kcp_session_stats_logger_t *stats_logger, int stats_interval_ms);
|
||||
kcp_client_t *kcp_client_dial(const char *server_addr, const char *dial_addr, const char *peer_id, const char *bind_ip, const char *bind_device, latency_logger_t *logger, kcp_packet_debug_logger_t *packet_logger, kcp_session_stats_logger_t *stats_logger, int stats_interval_ms);
|
||||
const char *kcp_client_id(const kcp_client_t *client);
|
||||
int kcp_client_send_text(kcp_client_t *client, const char *to, const char *text);
|
||||
int kcp_client_send_binary(kcp_client_t *client, const char *to, const void *data, size_t data_len);
|
||||
int kcp_client_send_file_path(kcp_client_t *client, const char *to, const char *path);
|
||||
int kcp_client_receive_timed(kcp_client_t *client, message_t *out_msg, int timeout_ms);
|
||||
int kcp_client_receive(kcp_client_t *client, message_t *out_msg);
|
||||
int kcp_client_receive_binary_into(kcp_client_t *client, void *buffer, size_t buffer_len, kcp_client_recv_meta_t *out_meta, int timeout_ms);
|
||||
int kcp_client_persist_message(kcp_client_t *client, const message_t *msg, const char *inbox_dir, char *out_path, size_t out_path_len);
|
||||
int kcp_client_close(kcp_client_t *client);
|
||||
void kcp_client_free(kcp_client_t *client);
|
||||
|
||||
@@ -12,6 +12,7 @@ typedef enum message_type {
|
||||
MSG_TYPE_FILE = 1,
|
||||
MSG_TYPE_REGISTER = 2,
|
||||
MSG_TYPE_ERROR = 3,
|
||||
MSG_TYPE_BINARY = 4,
|
||||
MSG_TYPE_INVALID = 255
|
||||
} message_type_t;
|
||||
|
||||
|
||||
@@ -9,20 +9,60 @@
|
||||
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_NODELAY 1
|
||||
#define KCP_DEFAULT_INTERVAL_MS 10
|
||||
#define KCP_DEFAULT_RESEND 2
|
||||
#define KCP_DEFAULT_NC 1
|
||||
#define KCP_DEFAULT_SND_WND 256
|
||||
#define KCP_DEFAULT_RCV_WND 256
|
||||
#define KCP_DEFAULT_MTU 1400
|
||||
#define KCP_DEFAULT_STATS_INTERVAL_MS 100
|
||||
|
||||
#define KCP_CONTROL_NODELAY 1
|
||||
#define KCP_CONTROL_INTERVAL_MS 5
|
||||
#define KCP_CONTROL_RESEND 2
|
||||
#define KCP_CONTROL_NC 1
|
||||
#define KCP_CONTROL_SND_WND 32
|
||||
#define KCP_CONTROL_RCV_WND 32
|
||||
#define KCP_CONTROL_MTU 1400
|
||||
|
||||
#define KCP_VIDEO_NODELAY 1
|
||||
#define KCP_VIDEO_INTERVAL_MS 10
|
||||
#define KCP_VIDEO_RESEND 2
|
||||
#define KCP_VIDEO_NC 1
|
||||
#define KCP_VIDEO_SND_WND 256
|
||||
#define KCP_VIDEO_RCV_WND 256
|
||||
#define KCP_VIDEO_MTU 1400
|
||||
|
||||
#define KCP_NODELAY KCP_DEFAULT_NODELAY
|
||||
#define KCP_INTERVAL KCP_DEFAULT_INTERVAL_MS
|
||||
#define KCP_RESEND KCP_DEFAULT_RESEND
|
||||
#define KCP_NC KCP_DEFAULT_NC
|
||||
#define KCP_WND_SIZE KCP_DEFAULT_SND_WND
|
||||
#define KCP_MTU KCP_DEFAULT_MTU
|
||||
|
||||
typedef struct kcp_conn kcp_conn_t;
|
||||
typedef struct kcp_listener kcp_listener_t;
|
||||
typedef struct kcp_conn_options {
|
||||
int nodelay;
|
||||
int interval_ms;
|
||||
int resend;
|
||||
int nc;
|
||||
int sndwnd;
|
||||
int rcvwnd;
|
||||
int mtu;
|
||||
} kcp_conn_options_t;
|
||||
|
||||
void kcp_conn_options_init(kcp_conn_options_t *options);
|
||||
void kcp_conn_options_set_control_defaults(kcp_conn_options_t *options);
|
||||
void kcp_conn_options_set_video_defaults(kcp_conn_options_t *options);
|
||||
|
||||
kcp_conn_t *kcp_conn_dial_with_options(const char *server_addr, const char *bind_ip, const char *bind_device, const kcp_conn_options_t *options, 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);
|
||||
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_apply_options(kcp_conn_t *conn, const kcp_conn_options_t *options);
|
||||
int kcp_conn_send(kcp_conn_t *conn, const message_t *msg);
|
||||
int kcp_conn_receive_timed(kcp_conn_t *conn, message_t *out_msg, int timeout_ms);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user