uip 作为tcp sever 流程测试

之前用过uip作为udp使用,但将它作为server还没有涉及到,最近有个小项目中需要使用。以下针对它作为tcp_server流程测试和探索。

struct timer periodic_timer, arp_timer;

//struct uip_udp_conn myUdp_Con;

//struct uip_udp_conn *pMyUpd_Con;

//char mySendbuf[20]={"hello,eric!\r\n"};

u8 uipSendBuf[UIP_SEND_BUF_MAX_LEN];

void UserUip_Init(void)

{

struct uip_eth_addr eaddr={{0x00,0xbd,0x3b,0x33,0x05,0x71}};

uip_ipaddr_t ipaddr;

Queue_Init(&eth_sRxQueue);

timer_set(&periodic_timer, CLOCK_SECOND / 2);

timer_set(&arp_timer, CLOCK_SECOND * 10);

tapdev_init((u8*)eaddr.addr);

uip_init();

uip_arp_init();

uip_ipaddr(ipaddr, 192,168,1,120);  //配置Ip

uip_sethostaddr(ipaddr);

uip_ipaddr(ipaddr, 192,168,1,1);  //配置网关

uip_setdraddr(ipaddr);

uip_ipaddr(ipaddr, 255,255,255,0);  //配置子网掩码

uip_setnetmask(ipaddr);

uip_setethaddr(eaddr);

uipTcp_Init();

}

void UserUip_Task(void)

{

int i;

//atic u32 arptimer=0;

uip_len = tapdev_read();                                //从网卡读取数据

if(uip_len > 0)

{                                                       //如果数据存在则按协议处理

if(BUF->type == htons(UIP_ETHTYPE_IP))

{

//如果收到的是IP数据,调用uip_input()处理

uip_arp_ipin();

uip_input();

/* If the above function invocation resulted in data that

should be sent out on the network, the global variable uip_len is set to a value > 0. */

if(uip_len > 0)

{

uip_arp_out();

tapdev_send();

}

}

else if(BUF->type == htons(UIP_ETHTYPE_ARP))

{    //如果收到的是ARP数据,调用uip_arp_arpin处理

uip_arp_arpin();

/* If the above function invocation resulted in data that

should be sent out on the network, the global variable uip_len is set to a value > 0. */

if(uip_len > 0)

{

tapdev_send();

}

}

}

else if(timer_expired(&periodic_timer))

{           //查看0.5s是否到了,调用uip_periodic处理TCP超时程序

timer_reset(&periodic_timer);

for(i = 0; i < UIP_CONNS; i++)

{

uip_periodic(i);

/* If the above function invocation resulted in data that

should be sent out on the network, the global variable uip_len is set to a value > 0. */

if(uip_len > 0)

{

uip_arp_out();

tapdev_send();

}

}

#if UIP_UDP

for(i = 0; i < UIP_UDP_CONNS; i++)

{

uip_udp_periodic(i);                                //处理udp超时程序

/* If the above function invocation resulted in data that

should be sent out on the network, the global variable uip_len is set to a value > 0. */

if(uip_len > 0)

{

uip_arp_out();

tapdev_send();

}

}

#endif /* UIP_UDP */

/* Call the ARP timer function every 10 seconds. */            //10s到了就处理ARP

if(timer_expired(&arp_timer))

{

timer_reset(&arp_timer);

uip_arp_timer();

}

}

}

void Udp_Appcall(void)

{

}

void uipTcp_Init(void)

{

uip_listen(HTONS(60000));

}

void uip_log(char *msg)

{

printf("uIP log message: %s\n", msg);

}

uip 作为tcp sever 流程测试

时间: 2024-08-29 03:21:38

uip 作为tcp sever 流程测试的相关文章

ApiPost自动化测试基础之:流程测试

我们在<ApiPost自动化测试基础之:接口参数依赖的情景处理>和<ApiPost自动化测试基础之:如何使用测试校验(测试用例)?>分别讲解了ApiPost自动化测试的基础知识. 本文主要讲解如何使用ApiPost的流程测试. ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它支持模拟POST.GET.PUT等常见请求,是后台接口开发者或前端.接口测试人员不可多得的工具 . 官网:https://www.apipost.cn/ 什么是

新闻网大数据实时分析可视化系统项目——10、数据采集/存储/分发完整流程测试

(一)idea工具开发数据生成模拟程序 1.在idea开发工具中构建weblogs项目,编写数据生成模拟程序. package main.java; import java.io.*; public class ReadWrite { static String readFileName; static String writeFileName; public static void main(String args[]){ readFileName = args[0]; writeFileNa

08-07 细分构建机器学习应用程序的流程-测试模型

目录 细分构建机器学习应用程序的流程-测试模型 一.1.1 metrics评估指标 二.1.2 测试回归模型 2.1 1.2.1 r2_socre 2.2 1.2.1 explained_variance_score 三.1.3 测试分类模型 3.1 1.3.1 准确度 3.2 1.3.2 查准率 3.3 1.3.3 查全率 3.4 1.3.4 F1值 3.5 1.3.5 ROC曲线 3.6 1.3.6 AUC面积 四.1.4 欠拟合和过拟合 4.1 4.9.4 交叉验证 4.1.1 4.9.4

Psping四大功能介绍:ICMP Ping/TCP Ping/延迟测试/带宽测试

本文主要介绍微软的测试工具Psping,该工具功能主要包括:ICMP Ping.TCP Ping.延迟测试.带宽测试 需要说明一种应用场景:由于Windows Azure数据中心禁ICMP,使用Psping的TCP Ping的功能来测试联通性或者故障排查就非常有用了. 工具下载地址: http://technet.microsoft.com/en-us/sysinternals/jj729731 下载完PSTools.zip包之后,放到任意本地磁盘内,解压之后如下: 使用CMD命令行工具进入PS

PCATTCP使用笔记——TCP UDP速度测试工具

0.PCATTCP简介 PCATTCP的前身为Test TCP,Test TCP是BSD操作系统的原生工具,该工具通过控制台输入参数,用于测试TCP或者UDP的通信速度.该项目于1984年启动,现在该工具的源代码早已开放.PCATTCP是Test TCP的windows移植版本,是一个用于测试TCP和UDP通信速度的windows控制台程序. 1.PCTATCP的安装 [1]下载可执行文件和源代码包,下载网址 [2]解压可执行文件到某文件件,例如D:\tools [3]把D:\tools加入环境

TCP/IP体系结构-测试人员必须理解的

转:https://www.cnblogs.com/candle806/archive/2011/11/09/2242273.html#4339824 如果还想在测试这条路上继续走下去的话,那么下面这些东西就是我们必须去掌握的,至少你还不想止步于简单的黑盒测试--其实,一直想去接触Linux下的应用测试,这样能学到东西会很多,而且会非常的受用.之前听小布老师讲,如果你想在IT技术上长期发展下去,那么你就大胆拥抱Linux吧,因为在这里你能学到东西远胜过于你在Windows平台下学到的东西,而其中

APP版本更新通知流程测试要点

一.APP版本更新通知流程图如下: 二.测试注意点: 1.Android更新直接下载APK,IOS引导至APP Store更新页面: 强制更新------只有"立即更新" 1.一般"强制更新"的机制不常用,除非涉及到APP的紧急且致命缺陷的修复,或者是与用户monkey密切相关的问题,或许才会使用"强制更新"机制: 2.不点击"立即更新"则APP中无法使用.更新后使用正常 提醒更新-------立即更新 1.Android同意

13-51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接TCP服务器,用串口调试助手和手机TCP调试助手测试)

写完题目刚想起来一件事情,如果手机作为客户端(不连接路由器的情况下),手机连接模块的无线会分配一个IP地址,,,这个IP地址事先我也不知道....我先看看AT指令里面有没有一个指令可以打印一下连接自己wifi信号后的设备的IP地址的指令. 没找到....................... 算啦,我直接用手机连接,看一下手机分配的IP地址,然后再设置模块APP可在百度手机助手,安卓市场,91助手,下载安装(搜索"小五物联") 咱们还是设置模块的工作模式为模式3 AT+CWMODE_D

分布式测试工具Beetle.DT的部署并进行HTTP,SQL,TCP压测

由于Beetle.DT是一个分布式压力测试工具,所以在使用上并不像普通工具那样安装运行这么简单:由于工具涉及到测试管理中心,节点和管理端等工具: 所以必须要进行相应的部署才能运行.接下来详解一下如果安装Beetle.DT并进行简单的HTTP,SQL和TCP相关压力测试. 运行环境要求 现有版本的Beetle.DT只能运行在windows+.net 4.5的基础上(暂只支持Console模试运行)在功能完善后会进行win service服务和.net core版的扩展开发.工具运行主要部署两大应用