Browse Source

移除测试代码和空行

master
xyiege 4 months ago
parent
commit
76da33043b
  1. 115
      scalib/include/rpc_message.h
  2. 23
      scalib/src/rpc_transport.c

115
scalib/include/rpc_message.h

@ -1,59 +1,58 @@
/* /*
* rpc_message.h * rpc_message.h
* RPC消息的序列化和反序列化接口 * RPC消息的序列化和反序列化接口
*/ */
#ifndef RPC_MESSAGE_H
#ifndef RPC_MESSAGE_H #define RPC_MESSAGE_H
#define RPC_MESSAGE_H
#include "rpc_common.h"
#include "rpc_common.h" #include "rpc_transport.h"
#include "rpc_transport.h"
/* 消息类型枚举 */
/* 消息类型枚举 */ typedef enum {
typedef enum { RPC_MESSAGE_REQUEST, // 请求消息
RPC_MESSAGE_REQUEST, // 请求消息 RPC_MESSAGE_RESPONSE // 响应消息
RPC_MESSAGE_RESPONSE // 响应消息 } rpc_message_type_t;
} rpc_message_type_t;
/* RPC消息头部 */
/* RPC消息头部 */ typedef struct {
typedef struct { rpc_message_type_t type; // 消息类型
rpc_message_type_t type; // 消息类型 uint32_t payload_size; // 负载大小
uint32_t payload_size; // 负载大小 } rpc_message_header_t;
} rpc_message_header_t;
/* RPC消息结构 */
/* RPC消息结构 */ typedef struct {
typedef struct { rpc_message_header_t header; // 消息头部
rpc_message_header_t header; // 消息头部 union {
union { rpc_request_t request; // 请求消息
rpc_request_t request; // 请求消息 rpc_response_t response; // 响应消息
rpc_response_t response; // 响应消息 } payload; // 消息负载
} payload; // 消息负载 } rpc_message_t;
} rpc_message_t;
/* 消息处理函数声明 */
/* 消息处理函数声明 */
// 序列化请求消息到缓冲区
// 序列化请求消息到缓冲区 int rpc_serialize_request(const rpc_request_t* request, void* buffer, size_t buffer_size);
int rpc_serialize_request(const rpc_request_t* request, void* buffer, size_t buffer_size);
// 反序列化缓冲区到请求消息
// 反序列化缓冲区到请求消息 int rpc_deserialize_request(const void* buffer, size_t buffer_size, rpc_request_t* request);
int rpc_deserialize_request(const void* buffer, size_t buffer_size, rpc_request_t* request);
// 序列化响应消息到缓冲区
// 序列化响应消息到缓冲区 int rpc_serialize_response(const rpc_response_t* response, void* buffer, size_t buffer_size);
int rpc_serialize_response(const rpc_response_t* response, void* buffer, size_t buffer_size);
// 反序列化缓冲区到响应消息
// 反序列化缓冲区到响应消息 int rpc_deserialize_response(const void* buffer, size_t buffer_size, rpc_response_t* response);
int rpc_deserialize_response(const void* buffer, size_t buffer_size, rpc_response_t* response);
// 发送请求消息
// 发送请求消息 int rpc_send_request(rpc_transport_t* transport, const rpc_request_t* request);
int rpc_send_request(rpc_transport_t* transport, const rpc_request_t* request);
// 接收请求消息
// 接收请求消息 int rpc_recv_request(rpc_transport_t* transport, rpc_request_t* request);
int rpc_recv_request(rpc_transport_t* transport, rpc_request_t* request);
// 发送响应消息
// 发送响应消息 int rpc_send_response(rpc_transport_t* transport, const rpc_response_t* response);
int rpc_send_response(rpc_transport_t* transport, const rpc_response_t* response);
// 接收响应消息
// 接收响应消息 int rpc_recv_response(rpc_transport_t* transport, rpc_response_t* response);
int rpc_recv_response(rpc_transport_t* transport, rpc_response_t* response);
#endif /* RPC_MESSAGE_H */ #endif /* RPC_MESSAGE_H */

23
scalib/src/rpc_transport.c

@ -5,12 +5,6 @@
#include "rpc_transport.h" #include "rpc_transport.h"
// 调试测试代码
void debug_test_struct_definition() {
rpc_server_t server;
server.address.sin_family = AF_INET; // 测试访问address成员
}
#ifdef _WIN32 #ifdef _WIN32
/* /*
@ -35,6 +29,7 @@ void rpc_winsock_cleanup() {
#endif #endif
#ifdef _WIN32
/* /*
* Windows平台的错误打印函数 * Windows平台的错误打印函数
*/ */
@ -101,7 +96,9 @@ int rpc_server_init(rpc_server_t* server, const char* host, uint16_t port, int b
server->address.sin_port = htons(port); server->address.sin_port = htons(port);
// 绑定地址到套接字 // 绑定地址到套接字
if (bind(server->server_fd, (struct sockaddr*)&server->address, sizeof(server->address)) != 0) { struct sockaddr_in* addr_ptr = &server->address;
int addr_len = sizeof(server->address);
if (bind(server->server_fd, (struct sockaddr*)addr_ptr, addr_len) != 0) {
PRINT_ERROR("bind failed"); PRINT_ERROR("bind failed");
CLOSE_SOCKET(server->server_fd); CLOSE_SOCKET(server->server_fd);
return RPC_NET_ERROR; return RPC_NET_ERROR;
@ -244,22 +241,16 @@ int rpc_client_init(rpc_transport_t* transport, const char* server_host, uint16_
// 连接到服务器 // 连接到服务器
if (connect(transport->socket_fd, (struct sockaddr*)&transport->address, sizeof(transport->address)) != 0) { struct sockaddr_in* conn_addr_ptr = &transport->address;
int conn_addr_len = sizeof(transport->address);
if (connect(transport->socket_fd, (struct sockaddr*)conn_addr_ptr, conn_addr_len) != 0) {
PRINT_ERROR("connection failed"); PRINT_ERROR("connection failed");
CLOSE_SOCKET(transport->socket_fd); CLOSE_SOCKET(transport->socket_fd);
return RPC_NET_ERROR; return RPC_NET_ERROR;
} }
printf("Connected to server %s:%d\n", server_host, server_port); printf("Connected to server %s:%d\n", server_host, server_port);
return RPC_SUCCESS; return RPC_SUCCESS;
} }

Loading…
Cancel
Save