#define OP_SEQ_REQ 0x1000 #define OP_SEQ_RSP 0x1001 #define MAX_SIZE_OF_URI 1024 #define MAX_SIZE_OF_TARGET 128 #define RSP_CODE_DIST_SUCCESS 1000 #define RSP_CODE_AUTH_SUCCESS 1001 #define RSP_CODE_SVR_BUSY 4200 #define RSP_CODE_INTERNAL_ERROR 4001 #define RSP_CODE_UNKNOWN_ERROR 4002 #define RSP_CODE_OP_FAILED 4003 #define RSP_CODE_AUTH_FAILED 4004 #define RSP_CODE_INVALID_PROTO 4051 #define RSP_CODE_INVALID_OP_CODE 4052 #define RSP_CODE_INVALID_ATTR_VALUE 4053 #define MAX_SIZE_OF_UA 128 #define MAX_SIZE_OF_UP 256 #define MAX_SIZE_OF_SP_ID 64 #define MAX_SIZE_OF_SP_PASSWD 256 #define MAX_SIZE_OF_OP_DESC 128 #define MAX_SIZE_OF_SP_ID 64 #define MAX_SIZE_OF_SP_PASSWD 256 #define OP_NUM_AUTH 10 #define OP_NUM_DN 201 #define OP_NUM_DDI 202 #define OP_NUM_DNC 203 #define OP_NUM_DA 204 #define OP_DN_MODE_REQ 0x00a0 #define RCTS_NOTICE_PORT 13110 #define MAX_SIZE_OF_TID 64 #define MAX_SIZE_OF_SP_TID 33 #define MAX_SIZE_OF_PHONE 16 #define MAX_SIZE_OF_MAIL 64 #define MAX_SIZE_OF_NAME 64 #define MAX_SIZE_FILE_NAME 1024 typedef struct _s_rc_auth_md5_req_body { char sp_id_str[MAX_SIZE_OF_SP_ID]; char sp_passwd_str[MAX_SIZE_OF_SP_PASSWD]; } rc_auth_md5_req_body_t; //Request Header typedef struct _s_tsvc_req_header { unsigned short op_num_w; unsigned short op_seq_w; } tsvc_req_header_t; //Request auth Body typedef struct _s_tsvc_auth_info { char ua_str[MAX_SIZE_OF_SP_ID]; char up_str[MAX_SIZE_OF_SP_PASSWD]; } tsvc_auth_info_t; //Request Directory Dist Info body typedef struct _s_tsvc_ddi_req_body { // unsigned short op_mode_w; char uri_str[MAX_SIZE_OF_URI]; } tsvc_ddi_req_body_t; typedef struct _s_tsvc_dn_req_body { unsigned short op_mode_w; char tid_str[MAX_SIZE_OF_TID]; char sp_tid_str[MAX_SIZE_OF_SP_TID]; char uri_str[MAX_SIZE_OF_URI]; char source_url[MAX_SIZE_OF_TARGET]; char target_url[MAX_SIZE_OF_TARGET]; char target_str[MAX_SIZE_OF_TARGET]; long long file_size; long long offset; } tsvc_dn_req_body_t; //Response Header typedef struct _s_tsvc_rsp_header { unsigned short op_num_w; unsigned short op_seq_w; unsigned short rsp_cnt_w; unsigned int op_result_code_w; char op_result_desc_str[MAX_SIZE_OF_OP_DESC]; } tsvc_rsp_header_t; //Response Directory Dist Info Body typedef struct _s_tsvc_ddi_rsp_body { int file_cnt; int dist_complete; int dist_now; int dist_fail; } tsvc_ddi_rsp_body_t; //Trans Complete typedef struct _s_tsvc_ddc_req_body { char sp_tid_str[MAX_SIZE_OF_SP_TID]; char name_01[MAX_SIZE_OF_NAME]; char phone_01[MAX_SIZE_OF_PHONE]; char mail_01[MAX_SIZE_OF_MAIL]; char name_02[MAX_SIZE_OF_NAME]; char phone_02[MAX_SIZE_OF_PHONE]; char mail_02[MAX_SIZE_OF_MAIL]; char name_03[MAX_SIZE_OF_NAME]; char phone_03[MAX_SIZE_OF_PHONE]; char mail_03[MAX_SIZE_OF_MAIL]; } tsvc_ddc_req_body_t; //dist req again typedef struct _s_tsvc_da_req { char sp_tid_str[MAX_SIZE_OF_SP_TID]; unsigned int file_cnt; } tsvc_da_req_t; typedef struct _s_tsvc_da_contents { char file_name[MAX_SIZE_FILE_NAME]; bool bFolder; } tsvc_da_contents_t; /* Sample int main(int argc, char **argv) { Socket socket_obj; tsvc_req_header_t tsvc_req_header; rc_auth_md5_req_body_t auth_req_body; tsvc_dn_req_body_t dn_req_body; tsvc_rsp_header_t *tsvc_rsp_header_ptr; char recv_buffer[8196]; if(argc < 3) { ::fprintf(stderr, "%s ip_addr port\n", argv[0]); ::exit(1); } fprintf(stderr, "argv[1] = %s, argv[2] = %s\n", argv[1], argv[2]); Address serv_addr(argv[1], ::atoi(argv[2])); try { tsvc_req_header.op_num_w = ::htons(10); tsvc_req_header.op_seq_w = ::htons(OP_SEQ_REQ); ::snprintf(auth_req_body.sp_id_str, MAX_SIZE_OF_SP_ID, "pooltest@test"); ::snprintf(auth_req_body.sp_passwd_str, MAX_SIZE_OF_SP_PASSWD, "alfkzmf"); socket_obj.open(Socket::TCP); socket_obj.connect(serv_addr); socket_obj.send((char *)&tsvc_req_header, sizeof(tsvc_req_header)); socket_obj.send((char *)&auth_req_body, sizeof(auth_req_body)); socket_obj.recv(recv_buffer, sizeof(recv_buffer)); tsvc_rsp_header_ptr = reinterpret_cast(&recv_buffer); fprintf(stderr, "============================= LOGIN ==================================\n"); fprintf(stderr, "op_num_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->op_num_w)); fprintf(stderr, "op_seq_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->op_seq_w)); fprintf(stderr, "rsp_cnt_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->rsp_cnt_w)); fprintf(stderr, "op_result_code_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->op_result_code_w)); fprintf(stderr, "op_result_desc_str = %s\n", tsvc_rsp_header_ptr->op_result_desc_str); tsvc_req_header.op_num_w = ::htons(OP_NUM_DN); tsvc_req_header.op_seq_w = ::htons(OP_SEQ_REQ); socket_obj.send((char *)&tsvc_req_header, sizeof(tsvc_req_header)); //dn_req_body.op_mode_w = htons(0x1100); dn_req_body.op_mode_w = htons(OP_DN_MODE_REQ); //::snprintf(dn_req_body.uri_str, PATH_MAX, "%s", "/freezonetest72.cert"); ::snprintf(dn_req_body.uri_str, PATH_MAX, "%s", "/TEST_5G_BY_SDK"); socket_obj.send((char *)&dn_req_body, sizeof(tsvc_dn_req_body_t)); socket_obj.recv(recv_buffer, sizeof(recv_buffer)); fprintf(stderr, "======================= COPY REQ ==================================\n"); fprintf(stderr, "op_num_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->op_num_w)); fprintf(stderr, "op_seq_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->op_seq_w)); fprintf(stderr, "rsp_cnt_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->rsp_cnt_w)); fprintf(stderr, "op_result_code_w = %d\n", ::ntohs(tsvc_rsp_header_ptr->op_result_code_w)); fprintf(stderr, "op_result_desc_str = %s\n", tsvc_rsp_header_ptr->op_result_desc_str); socket_obj.close(); } catch (Exception e) { fprintf(stderr, "ERROR: %s, %s, %d\n", e.getMethod().c_str(), e.getMessage().c_str(), e.getCode()); } return 1; } */