doubao_chat/lib/net/uip/test/uip_test.c

107 lines
3.5 KiB
C

#include "uip.h"
#include "uip_arp.h"
#include "os/os_api.h"
#include "uip_timer.h"
#include "dhcpc.h"
#include "tcp_demo.h"
#include "udp_demo.h"
static void uip_task(void *prive)
{
static u8 init_flog = 0;
u8_t tcp_server_tsta = 0xff;
u8_t tcp_client_tsta = 0xff;
u8_t udp_server_tsta = 0xff;
u8_t udp_client_tsta = 0xff;
static struct timer arp_timer;
DEBUG_PRINTF(">>>>>>>>>>>>uip_test");
while (1) {
if (DHCP_ok_flog) { //DHCP已经获取到了动态分配的IP
if (!init_flog) { //初始化配置进行一次
init_flog = 1;
tcp_server_connect();
/*tcp_client_connect();*/
/*udp_server_connect();*/ //需要开关宏定义USE_UDP_CLIENT USE_UDP_SERVER
/*udp_client_connect();*/
}
}
if (tcp_server_tsta != tcp_server_sta) { //TCP Server状态改变
if (tcp_server_sta & (1 << 7)) {
printf("TCP Server Connected\r\n");
} else {
printf("TCP Server Disconnected\r\n");
}
if (tcp_server_sta & (1 << 6)) { //收到新数据
printf("TCP Server RX:%s\r\n", tcp_server_rx_databuf); //打印数据
tcp_send_data(" TCP Server TX Successfully!\r\n");
tcp_server_sta &= ~(1 << 6); //标记数据已经被处理
}
tcp_server_tsta = tcp_server_sta;
}
if (tcp_client_tsta != tcp_client_sta) { //TCP Client状态改变
if (tcp_client_sta & (1 << 7)) {
printf("TCP Client Connected\r\n");
} else {
printf("TCP Client Disconnected\r\n");
}
if (tcp_client_sta & (1 << 6)) { //收到新数据
printf("TCP Client RX:%s\r\n", tcp_client_rx_databuf); //打印数据
tcp_send_data("TCP Client TX Successfully!\r\n");
tcp_client_sta &= ~(1 << 6); //标记数据已经被处理
}
tcp_client_tsta = tcp_client_sta;
}
if (udp_server_tsta != udp_server_sta) { //UDP Server状态改变
if (udp_server_sta & (1 << 7)) {
printf("UDP Server Connected\r\n");
} else {
printf("UDP Server Disconnected\r\n");
}
if (udp_server_sta & (1 << 6)) { //收到新数据
printf("UDP Server RX:%s\r\n", udp_server_rx_databuf); //打印数据
udp_send_data(" UDP Server TX Successfully!\r\n");
udp_server_sta &= ~(1 << 6); //标记数据已经被处理
}
udp_server_tsta = udp_server_sta;
}
if (udp_client_tsta != udp_client_sta) { //UDP Client状态改变
if (udp_client_sta & (1 << 7)) {
printf("UDP Client Connected\r\n");
} else {
printf("UDP Client Disconnected\r\n");
}
if (udp_client_sta & (1 << 6)) { //收到新数据
printf("UDP Client RX:%s\r\n", udp_client_rx_databuf); //打印数据
udp_send_data(" UDP Client TX Successfully!\r\n");
udp_client_sta &= ~(1 << 6); //标记数据已经被处理
}
udp_client_tsta = udp_client_sta;
}
os_time_dly(50);
}
}
/*测试程序入口*/
void uip_test(void)
{
thread_fork("uip_task", 20, 512, 0, NULL, uip_task, NULL);
}
/*调用该函数进行测试*/
int uip_test_main()
{
uip_test();
return 0 ;
}