blob: 550514b75ab5a05b140ff7e7b25f6a8822c20730 [file] [log] [blame]
b.liu4e243dc2023-11-27 11:20:00 +08001#include <stdio.h>
2#include <stdlib.h>
3#include <unistd.h>
4#include <errno.h>
5#include <sys/socket.h>
6#include <sys/un.h>
7#include <netinet/in.h>
8#include <pthread.h>
9#include <sys/epoll.h>
10#include <string.h>
11#include <fcntl.h>
12#include <signal.h>
13
14#include "mbtk_tcpip.h"
15#include "mbtk_log.h"
16
b.liu9e8584b2024-11-06 19:21:28 +080017#if 0
b.liu4e243dc2023-11-27 11:20:00 +080018
19static void help()
20{
21 printf("\n************************************************************************\n");
22 printf("net_open: Open network.\n");
23 printf("net_close: Close network.\n");
24 printf("link_open <link_id> <ser_addr> <ser_port> <loc_port> <TCP/UDP> <CLI/SER> <ack> <ssl> <ignore_cert> <heartbeat_time> <delay_time> <read_cb>: Open link.\n");
25 printf("link_close <link_id>: Close link.\n");
26 printf("send <link_id> <data>:Send data.\n");
27 printf("recv <link_id> <len>:Recv data.\n");
28 printf("traffic_reset <link_id>:Traffic reset.\n");
29 printf("traffic_get <link_id>:Traffic get.\n");
30 printf("state_get <link_id>:Link state get.\n");
31 printf("tcp_info <link_id>:TCP information state get.\n");
32 printf("\n************************************************************************\n");
33}
34
35static void sig_process(int sig)
36{
37 LOGI("I got signal %d\n", sig);
38 switch(sig)
39 {
40 case SIGINT: // Ctrl + C
41 {
42 LOGI("Exit by SIGINT.\n");
43 mbtk_tcpip_err_enum err = mbtk_tcpip_net_close();
44 if(err == MBTK_TCPIP_ERR_SUCCESS) {
45 printf("Net close success.\n");
46 } else {
47 printf("Net close fail:%d\n", err);
48 }
49 exit(0);
50 }
51 case SIGQUIT: // Ctrl + \ (类似 SIGINT ,但要产生core文件)
52 {
53 LOGI("Exit by SIGQUIT.\n");
54 mbtk_tcpip_err_enum err = mbtk_tcpip_net_close();
55 if(err == MBTK_TCPIP_ERR_SUCCESS) {
56 printf("Net close success.\n");
57 } else {
58 printf("Net close fail:%d\n", err);
59 }
60 exit(0);
61 }
62 case SIGTERM:// 默认kill (同 SIGKILL ,但 SIGKILL 不可捕获)
63 {
64 LOGI("Exit by SIGTERM.\n");
65 mbtk_tcpip_err_enum err = mbtk_tcpip_net_close();
66 if(err == MBTK_TCPIP_ERR_SUCCESS) {
67 printf("Net close success.\n");
68 } else {
69 printf("Net close fail:%d\n", err);
70 }
71 exit(0);
72 }
73 case SIGTSTP:// Ctrl + Z (同 SIGSTOP ,但 SIGSTOP 不可捕获)
74 {
75 LOGI("Exit by SIGTSTP.\n");
76 exit(0);
77 }
78 case SIGSEGV: // 如空指针
79 {
80 LOGI("Exit by SIGSEGV.\n");
81 exit(0);
82 }
83 default:
84 {
85 LOGI("Unknown sig:%d\n",sig);
86 break;
87 }
88 }
89}
b.liu9e8584b2024-11-06 19:21:28 +080090#endif
b.liu4e243dc2023-11-27 11:20:00 +080091void tcpip_print_tcp_info(mbtk_tcpip_tcp_state_info_s *info)
92{
93 printf("Link - %d\n", info->link_id);
94 printf("fd - %d\n", info->sock_fd);
95 printf("State - %d\n", info->state);
96 printf("Recv data length - %d\n", info->recv_data_len);
97}
98
99void tcpip_read_cb(int link_id, const char* data, int data_len)
100{
101 printf("\nRECV(%d-%d):%s\n", link_id, data_len, data);
102}
103
104void tcpip_net_callback_func(int state, const char* addr)
105{
106 if(state) {
107 printf("Net conncect, IP : %s\n", addr);
108 } else {
109 printf("Net disconnect.\n");
110 }
111}
112
113
114int main(int argc, char *argv[])
115{
116
117
118 printf(">>>>>>>>>>>START TCP TEST>>>>>>>>>>>>>\r\n");
119 mbtk_tcpip_err_enum err;
b.liu9e8584b2024-11-06 19:21:28 +0800120
b.liu4e243dc2023-11-27 11:20:00 +0800121 mbtk_tcpip_info_t info;
122 memset(&info, 0x0, sizeof(mbtk_tcpip_info_t));
123 char *ip = "www.chaixiongfeng.group";
b.liu9e8584b2024-11-06 19:21:28 +0800124 strcpy(info.ser_addr,ip);
b.liu4e243dc2023-11-27 11:20:00 +0800125 info.link_id=1;
126 info.ser_port =45002;
127 info.prot_type = MBTK_SOCK_TCP;
128 info.tcpip_type = MBTK_TCPIP_TYPE_CLIENT;
129 info.read_cb = NULL;
b.liu9e8584b2024-11-06 19:21:28 +0800130
b.liu4e243dc2023-11-27 11:20:00 +0800131
132 err = mbtk_tcpip_sock_open((const mbtk_tcpip_info_t*)(&info));
133 if(err == MBTK_TCPIP_ERR_SUCCESS) {
134 printf("Link open success.\n");
135 } else {
136 printf("Link open fail:%d\n", err);
137 return 0;
138 }
b.liu9e8584b2024-11-06 19:21:28 +0800139
b.liu4e243dc2023-11-27 11:20:00 +0800140 while(1)
141 {
142 char *data="stargcharge connect\r\n";
143 int len = mbtk_tcpip_send(1, data, strlen(data), NULL, 0);
b.liu9e8584b2024-11-06 19:21:28 +0800144 if(len == strlen(data))
b.liu4e243dc2023-11-27 11:20:00 +0800145 {
146 printf("Send success:%d.\n", len);
b.liu9e8584b2024-11-06 19:21:28 +0800147 }
148 else
b.liu4e243dc2023-11-27 11:20:00 +0800149 {
150 printf("Send fail:%d/%d\n", len, strlen(data));
151 }
152
153 char buff[128];
154 len = mbtk_tcpip_read(1, buff, 128);
b.liu9e8584b2024-11-06 19:21:28 +0800155 if(len > 0)
b.liu4e243dc2023-11-27 11:20:00 +0800156 {
157 printf("RECV[%d]:%s\n", len, buff);
158 }
b.liu9e8584b2024-11-06 19:21:28 +0800159 else
b.liu4e243dc2023-11-27 11:20:00 +0800160 {
161 printf("RECV fail:%d\n", len);
162 }
163
164 err = mbtk_tcpip_sock_close(1);
b.liu9e8584b2024-11-06 19:21:28 +0800165 if(err == MBTK_TCPIP_ERR_SUCCESS)
b.liu4e243dc2023-11-27 11:20:00 +0800166 {
167 printf("Link close success.\n");
b.liu9e8584b2024-11-06 19:21:28 +0800168 }
169 else
b.liu4e243dc2023-11-27 11:20:00 +0800170 {
171 printf("Link close fail:%d\n", err);
172 }
173 sleep(5);
b.liu9e8584b2024-11-06 19:21:28 +0800174 }
b.liu4e243dc2023-11-27 11:20:00 +0800175}
176
177