From a8d003ad1ca32d432458291b2fbafa614b46c9e5 Mon Sep 17 00:00:00 2001 From: xc Date: Sun, 28 Sep 2025 16:52:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84?= =?UTF-8?q?=E7=A9=BA=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scalib/include/rpc_transport.h | 150 ++++++++++++++++----------------- 1 file changed, 74 insertions(+), 76 deletions(-) diff --git a/scalib/include/rpc_transport.h b/scalib/include/rpc_transport.h index 2cb603a..0918855 100644 --- a/scalib/include/rpc_transport.h +++ b/scalib/include/rpc_transport.h @@ -1,77 +1,75 @@ -/* - * rpc_transport.h - * 定义RPC传输层的接口,负责处理网络通信 - */ - -#ifndef RPC_TRANSPORT_H -#define RPC_TRANSPORT_H - -#include "rpc_common.h" - -/* 根据不同平台包含不同的头文件 */ -#ifdef _WIN32 - #include - #include - #pragma comment(lib, "ws2_32.lib") - - /* Windows平台的类型定义 */ - typedef SOCKET socket_t; - #define INVALID_SOCKET_VALUE INVALID_SOCKET - #define CLOSE_SOCKET(s) closesocket(s) - - /* Windows平台初始化和清理函数 */ - int rpc_winsock_init(); - void rpc_winsock_cleanup(); -#else - /* Linux/Unix平台的头文件 */ - #include - #include - #include - #include - - /* Linux/Unix平台的类型定义 */ - typedef int socket_t; - #define INVALID_SOCKET_VALUE (-1) - #define CLOSE_SOCKET(s) close(s) - - /* Linux/Unix平台不需要特殊的初始化和清理 */ - #define rpc_winsock_init() 0 - #define rpc_winsock_cleanup() -#endif - -/* 传输上下文 */ -typedef struct { - socket_t socket_fd; // 套接字文件描述符 - struct sockaddr_in address; // 地址信息 -} rpc_transport_t; - -/* 服务器上下文 */ -typedef struct { - socket_t server_fd; // 服务器套接字文件描述符 - struct sockaddr_in address; // 服务器地址信息 -} rpc_server_t; - -/* 传输层函数声明 */ - -// 初始化服务器 -int rpc_server_init(rpc_server_t* server, const char* host, uint16_t port, int backlog); - -// 服务器等待连接 -int rpc_server_accept(rpc_server_t* server, rpc_transport_t* transport); - -// 关闭服务器 -void rpc_server_close(rpc_server_t* server); - -// 初始化客户端传输 -int rpc_client_init(rpc_transport_t* transport, const char* server_host, uint16_t server_port); - -// 发送数据 -int rpc_transport_send(rpc_transport_t* transport, const void* data, size_t data_size); - -// 接收数据 -int rpc_transport_recv(rpc_transport_t* transport, void* buffer, size_t buffer_size); - -// 关闭传输连接 -void rpc_transport_close(rpc_transport_t* transport); - +/* + * rpc_transport.h + * 定义RPC传输层的接口,负责处理网络通信 + */ + +#ifndef RPC_TRANSPORT_H +#define RPC_TRANSPORT_H +#include "rpc_common.h" +/* 根据不同平台包含不同的头文件 */ + +#ifdef _WIN32 + #include + #include + #pragma comment(lib, "ws2_32.lib") + /* Windows平台的类型定义 */ + typedef SOCKET socket_t; + #define INVALID_SOCKET_VALUE INVALID_SOCKET + #define CLOSE_SOCKET(s) closesocket(s) + + /* Windows平台初始化和清理函数 */ + int rpc_winsock_init(); + void rpc_winsock_cleanup(); +#else + + /* Linux/Unix平台的头文件 */ + #include + #include + #include + #include + + /* Linux/Unix平台的类型定义 */ + typedef int socket_t; + #define INVALID_SOCKET_VALUE (-1) + #define CLOSE_SOCKET(s) close(s) + + /* Linux/Unix平台不需要特殊的初始化和清理 */ + #define rpc_winsock_init() 0 + #define rpc_winsock_cleanup() +#endif +/* 传输上下文 */ + +typedef struct { + socket_t socket_fd; // 套接字文件描述符 + struct sockaddr_in address; // 地址信息 +} rpc_transport_t; +/* 服务器上下文 */ + +typedef struct { + socket_t server_fd; // 服务器套接字文件描述符 + struct sockaddr_in address; // 服务器地址信息 + +} rpc_server_t; +/* 传输层函数声明 */ +// 初始化服务器 + +int rpc_server_init(rpc_server_t* server, const char* host, uint16_t port, int backlog); +// 服务器等待连接 + +int rpc_server_accept(rpc_server_t* server, rpc_transport_t* transport); +// 关闭服务器 + +void rpc_server_close(rpc_server_t* server); +// 初始化客户端传输 + +int rpc_client_init(rpc_transport_t* transport, const char* server_host, uint16_t server_port); +// 发送数据 + +int rpc_transport_send(rpc_transport_t* transport, const void* data, size_t data_size); +// 接收数据 + +int rpc_transport_recv(rpc_transport_t* transport, void* buffer, size_t buffer_size); +// 关闭传输连接 + +void rpc_transport_close(rpc_transport_t* transport); #endif /* RPC_TRANSPORT_H */ \ No newline at end of file