lwip TCP client 客户端 & FreeRTOS
static void tcpecho_thread(void *arg)
{ ip_addr_t serverIpAddr;
struct netbuf *buf;
void *data;
u16_t len;
err_t err;
struct netconn *conn; IP4_ADDR(&serverIpAddr,,,,);// 服务器IP地址 LWIP_UNUSED_ARG(arg); for( ;; )
{ printf("正在建立连接服务器到:192.168.1.13 :65000...\r\n"); /* Create a new connection identifier. */
conn = netconn_new(NETCONN_TCP); if (conn!=NULL)
{ /* Netconn connection to Server IP , port number 65000. */ err = netconn_connect(conn, &serverIpAddr, ); if(err == ERR_OK)
{ printf("TCP Server 192.168.1.13 :65000 连接成功.\r\n"); for( ;; )
{ /* receive data until the other host closes the connection */
if((err = netconn_recv(conn, &buf)) == ERR_OK) //这个是死等 TCP 数据
{
//获取一个指向netbuf 结构中的数据的指针 if((err = netbuf_data(buf, &data, &len)) == ERR_OK)
{ //接收到的数据 转发给串口1,来达到透传的目的
comSendBuf(COM1,data,len); netbuf_delete(buf); }
else
{
printf("err:netbuf_data(buf, &data, &len):%d.\r\n",err);
} }
else//if((err = netconn_recv(conn, &buf)) == ERR_OK)
{ printf("err:netconn_recv(conn, &buf):%d.\r\n",err); netbuf_delete(buf); break;
} } } printf("TCP Server 192.168.1.13 :65000 连接失败.\r\n"); netconn_close(conn);
netconn_delete(conn); /* vTaskDelayUntil是绝对延迟,vTaskDelay是相对延迟。*/
vTaskDelay();
}
else//(conn!=NULL)
{
printf("Can not create TCP netconn.\r\n"); /* vTaskDelayUntil是绝对延迟,vTaskDelay是相对延迟。*/
vTaskDelay();
} }
}
1、根据某位大神 总结的经验!
lwip TCP client 客户端 & FreeRTOS的更多相关文章
- (转)lwip TCP client & FreeRTOS 打开TCP 的 保活机制 LWIP_TCP_KEEPALIVE==1
参考大神教程:http://blog.sina.com.cn/s/blog_62a85b950101aw8x.html 老衲五木 :http://blog.sina.com.cn/s/blog_6 ...
- lwip TCP client & FreeRTOS 打开TCP 的 保活机制 LWIP_TCP_KEEPALIVE==1
参考大神教程:http://blog.sina.com.cn/s/blog_62a85b950101aw8x.html 老衲五木 :http://blog.sina.com.cn/s/blog_6 ...
- STM32F407移植contiki2.6后使用LWIP库实现tcp client
最近在做智能家居,物联网项目,用到了C下的contiki移植 经过一阵调试,终于在 STM32F407移植contiki2.6后使用LWIP库实现tcp client. 一路艰辛谁人知道....唯有留 ...
- [Python 网络编程] TCP Client (四)
TCP Client 客户端编程步骤: 创建socket对象 连接到服务端的ip和port,connect()方法 传输数据 使用send.recv方法发送.接收数据 关闭连接,释放资源 最简单的客户 ...
- stm32使用LWIP实现DHCP客户端
LWIP是一款开源的嵌入式网络协议栈,支持的功能很多,而且能在多任务环境下和单任务裸机环境下跑,今天说说他的移植过程,芯片为STM32,网卡为ENC28J60,无操作系统 首先下载LWIP的源代码,我 ...
- Modbus库开发笔记之四:Modbus TCP Client开发
这一次我们封装Modbus TCP Client应用.同样的我们也不是做具体的应用,而是实现TCP客户端的基本功能.我们将TCP客户端的功能封装为函数,以便在开发具体应用时调用. 对于TCP客户端我们 ...
- 全网最详细的Windows系统里Oracle 11g R2 Client客户端(64bit)安装后的初步使用(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Client(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1) 打开服务(cmd— ...
- 【Echo】实验 -- 实现 C/C++下TCP, 服务器/客户端 通讯
本次实验利用TCP/IP, 语言环境为 C/C++ 利用套接字Socket编程,实现Server/CLient 之间简单的通讯. 结果应为类似所示: 下面贴上代码(参考参考...) Server 部分 ...
- tcp程序设计--客户端获取服务器输入输出流
tcp程序设计--客户端获取服务器输入输出流 思路: 第一步:实例化一个ServerSocket对象(服务器套接字),用来等待网络上的请求(也就是等待来连接的套接字) 第二步:调用accept()方法 ...
随机推荐
- 轻松学习java可重入锁(ReentrantLock)的实现原理(转 图解)
前言 相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么 ...
- css多行文本省略号(...)
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现单行文本省略 <!DOCTYPE html ...
- LeetCode 514----Freedom Trail
问题描述 In the video game Fallout 4, the quest "Road to Freedom" requires players to reach a ...
- Signal & Slot in Qt
Try your best to provide an mechanism to implement what you want. 1. All is generated by QT Framewor ...
- number to string
C++进行int to string和string to int 下面方法一存在内存泄露 #include<strstream>void main(){ std::strstream ss ...
- Android版APM地面站,支持直连和数传台连接
现在隆重介绍APM上的手机/平板地面站 andropilot官方链接在此http://www.diydrones.com/groups/705844:Group:1132500?xg_source=m ...
- MAVLink Onboard Integration Tutorial
MAVLink Onboard Integration Tutorial MAVLink is a header-only library, which means that you don't ha ...
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
有时遇到将数据传输对象转换成JSON串会将属性值为空的属性去掉,利用Java反射实现JavaBean对象数据传输对象的相同属性复制并初始化数据传输对象属性为空的属性,然后转换成JSON串 packag ...
- base64编码以及url safe base64是怎么工作的?
原文转自 http://www.yanshiba.com/archives/638 1: 为什么需要base64? ASCII码一共规定了128个字符的编码,这128个符号,范围在[0,127]之间. ...
- python 3 输入和输出
一.普遍的输入和输出 1.输入 在python3中,函数的输入格式为:input(),能够接受一个标准输入数据,返回string类型. input() 函数是从键盘作为字符串读取数据,不论是否使用引号 ...