lwip TCP client 客户端 & FreeRTOS

摘要:
*/vTaskDelay;}}1.根据大神总结的经验!
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,192,168,1,13);// 服务器IP地址
      
  LWIP_UNUSED_ARG(arg);
  
      for( ;; )
      {
                
                printf("正在建立连接服务器到:192.168.1.13 :65000...
");
                
                
                /* 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, 65000);
                    
                    if(err == ERR_OK)
                    {

                        printf("TCP Server 192.168.1.13 :65000 连接成功.
");
                        
                        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.
",err);
                                 }
                                
                            }
                            else//if((err = netconn_recv(conn, &buf)) == ERR_OK)
                            {
                                
                                printf("err:netconn_recv(conn, &buf):%d.
",err);
                                
                                netbuf_delete(buf);
                                
                                break;
                            }
                    
                        }

                    }
                
                    printf("TCP Server 192.168.1.13 :65000 连接失败.
");
                    
                     netconn_close(conn);
                     netconn_delete(conn);
                    
                    /* vTaskDelayUntil是绝对延迟,vTaskDelay是相对延迟。*/
                    vTaskDelay(1000);
                }
                else//(conn!=NULL)
                {
                    printf("Can not create TCP netconn.
");
                    
                    /* vTaskDelayUntil是绝对延迟,vTaskDelay是相对延迟。*/
                    vTaskDelay(1000);
                }

            }
}

1、根据某位大神 总结的经验!

lwip TCP client 客户端 & FreeRTOS第1张

免责声明:文章转载自《lwip TCP client 客户端 & FreeRTOS》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Sharding-Jdbc 3.1.0遇到的问题与处理SQL Server 复制 订阅与发布下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

开源网络分析工具TCP Traffic Analyzer

来源于InfoQ: Yahoo最近在其开发者博客上发布了一款开源网络分析工具TCP Traffic Analyzer(yconalyzer),读者可以借此分析网络应用在服务器端与客户端之间的运行状态。 TCP Traffic Analyzer的几个显著分析功能包括: 持续时间超过(或者小于)某阈值的TCP 连接数。 尝试次数超过N次才成功的TCP连接数。...

TCP建立连接时socket的epoll态及一个可能的状态不一致问题

零、原因 其实本来是在看TCP三次握手时客户端和服务器端socket对于epoll状态何时返回何种状态,不过后来引出了一个另有意思的问题:就是客户端和服务器双方对于三次握手的状态出现了不一致。我们知道,在三次握手中,客户端在发送最后一个ack之后进入ESTABLISHED状态,并没有要求服务器对于这个ACK再次ACK(当然也没有办法要求ACK,否则这样就是...

Linux下查看Nginx的并发连接数和连接状态-乾颐堂

Linux下查看Nginx等的并发连接数和连接状态。 1、查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态:  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 或者: netstat -n | awk '/^tcp/ {++state[$NF...

java Socket用法详解(转)

在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器, 服务器与客户端都通过 Socket 来收发数据. 这篇文章首先介绍Socket类的各个构造方法, 以及成员方法的用法, 接着介绍 Socket的一些选项的...

3、iptables扩展及使用

iptables/netfilter netfilter: kernel framework,位于内核中的协议框架 iptables  是规则管理命令行工具   四表:filter, nat, mangle, raw 五链:PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING   iptables 子命令: 链:-...

【原创】主机不能访问虚拟机CentOS7中的站点

主机不能访问虚拟机CentOS7中的站点 ================================ 虚拟机上装好了centos7,并配好了nginx+php+mysql,但是本机就是无法访问。具体情况如下1.本机能ping通虚拟机2.虚拟机也能ping通本机3.虚拟机能访问自己的web 通过虚拟机IP也能访问自己的web 4.本机无法访问虚拟己的w...