首页 > 其他分享 >Freertos LWIP协议tcp client无法连接服务端

Freertos LWIP协议tcp client无法连接服务端

时间:2022-12-07 10:36:38浏览次数:70  
标签:初始化 功能 LwIP 服务器端 Freertos tcp LWIP 连接 客户端


参考​​https://jingyan.baidu.com/article/e52e36154ae4f740c60c5106.html​

 

    现在大多的单片机使用LwIP协议来实现互联网功能,但是在刚刚学习时发现有个问题就是,LwIP协议用作服务器端时可以成功执行建立Socket,绑定端口号以及启动侦听等功能。但是用作客户端时,无法连接到指定的服务器端。其实问题主要出在时序上,由于LwIP初始化需要一定的时间而且这个过程与主程序是并列进行的。

       LwIP协议初始化主要完成设备 IP的指定(如果连接到路由器以及运行DHCP服务,还要等待路由器为设备分配 IP)、网关等认证。

      由于单片机做服务器端的初始化与等待连接的客户端无关,所以可以在LwIP未初始化完成时便可以启动侦听服务,但也要等LwIP初始化完成才可以接收客户端连接。

      但单片机做客户端时,需要向服务器端发起连接,所以在LwIP协议没有初始化完成时是不可能发起连接的。所以解决问题要在LwIP初始化完成后再运行客户端初始化和发起连接。

 

使用freertos + LWIP+EC20实现mqtt和http clinet功能。

1、如何实现EC20网络ppp功能,

请参考代码​​https://github.com/loboris/ESP32-PPPOS-EXAMPLE​

2、如何实现mqtt功能,请参考lwip中的mqtt_test,使用mqttbox测试验证。需要一台服务器

3、如何实现http client功能,

1)此功能比较坑的是建立网络后,需要一段时间延迟。

2)在1)基础上基本能够connect上服务器,可以进行写入,但是读取会堵塞。

参考lwip\contrib\apps\socket_examples代码中socket_examples.c文档中sockex_testrecv(void *arg)函数。

需要设置lwip_setsockopt等。

 

 

标签:初始化,功能,LwIP,服务器端,Freertos,tcp,LWIP,连接,客户端
From: https://blog.51cto.com/u_15904120/5917886

相关文章

  • IC64525: SQLCODE -30020 OR DRDA DATA STREAM SYNTAX ERROR REPORTED BY DB2 CONNECT
      Skiptomaincontent    Openacase    KnownIssues IC64525:SQLCODE-30020ORDRDADATASTREAMSYNT......
  • TCP 连接断开
    一、TCP四次挥手过程是怎样的?天下没有不散的宴席,对于TCP连接也是这样,TCP断开连接是通过四次挥手方式。双方都可以主动断开连接,断开连接后主机中的「资源」将被释放,......
  • Linux内核态TCP协议调优
    参考:​​https://zhuanlan.zhihu.com/p/374135294​​net.ipv4.tcp_syncookies=1net.ipv4.tcp_tw_timeout=5#阿里云linux才支持此参数,参考:​​修改TCPTIME-WAIT超时时间-......
  • Java网络编程---基于TCP协议实现客户端服务端通信
    首先,对于TCP协议,我们要明确:TCP:传输控制协议TCP会尽自己所能,尽量将数据发送给对方;但并不能保证100%可以发送给对方TCP会在数据发送不到对方的情况下,会给应用......
  • 图文并茂解释TCP/IP 3次握手4次断开
    第一次第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(SynchronizeSequenceNumbers)。第二次第二次握手:服务器收......
  • TCP 连接建立
    一、TCP三次握手过程是怎样的?TCP是面向连接的协议,所以使用TCP前必须先建立连接,而建立连接是通过三次握手来进行的。三次握手的过程如下图:一开始,客户端和服务端都处......
  • #盲盒+码##深入浅出学习eTs#(十九)TCP聊天室
    【本文正在参加「盲盒」+码有奖征文活动】https://ost.51cto.com/posts/19288本项目Gitee仓地址:深入浅出eTs学习:带大家深入浅出学习eTs(gitee.com)一、需求分析本章......
  • Linux操作系统之tcpdump抓包工具详解
    前言①tcpdump工具简介:tcpdump是Linux操作系统中的字符界面的数据抓包分析软件。tcpdump可以将网络中传送的数据包完全截获下来提供分析②tcpdump是一个用于截取网络分组,并......
  • started to fail (ZBX_TCP_READ() timed out)
    #tail-f/var/log/zabbix/zabbix_agentd.log  查看agent日志activecheckconfigurationupdatefrom[114.246.27.164:10051]startedtofail(ZBX_TCP_READ()tim......
  • 《图解TCP/IP》阅读笔记(第四章 4.4、4.5)
    《图解TCP/IP》4.4路由控制昨儿谈完了IP地址的一部分情况,今天就该聊聊路由控制了。知道了各小区,每家每户的门牌号是怎么定义的,那接下来就要知道如何走到各家各户门前,再......