关于RAW TCP客户端数据发送问题

2019-08-21 12:14发布

最近在学习RAW TCP/IP协议,还在入门测试阶段。直接在原子哥的例程上进行修改。例程是STM32F103ZET6扩展例程中的网络实验4 RAW_TCP客户端实验。拟采用一个字符数组变量 存储要发送的数据然后用指针指向这个数组来发送这个数据。但是不知道为什么程序只能将这个数组发送一次。换另一个数组它也能发送另一个。但是同一个数组不能发送两次。我是直接将轮训函数放入了主程序的while(1)中,这种应该算是长连接吧。第一个是直接引用原子哥的程序tcp_client_test();但是加入了一个flag,只要传输成功就跳出循环。所以没看出问题在哪。到case4的时候第一次发送完成后,再到case4的时候别的功能都正常就是不传送数据。我在猜测是因为 原子哥程序里原本定义的是无类型常量。会不会是因为这个。希望大家能帮帮忙,谢谢了。

tcp_client_test();   
cure_picture(0,0,0,800,480);
while(1)
{  
  switch(CaseState)
  {case 0:                                       
      
            lwip_periodic_handle();
        lwip_pkt_handle();
       break;
   case 1:                                    

             power_adjust(ADCResult0,ADCResult1);
       CaseState_PRE =1;
           break;  
   case 2:                                   
     
          temp_cmp = cure_ing(temp_cure,temp_cmp,jiliang);
           CaseState=6;  
       CaseState_PRE=2;  
         if(temp_cmp==4)
      {temp_cmp=0;
       display(2);
       display(5);
       display(8);
       display(11);
      CaseState = 4;
      }     
                    
          break;
   case 3:                                   

        jiliang_get(temp_cure_PRE);
            CaseState = 6;
       CaseState_PRE=3;
           break;
   case 4:                           
            
          sprintf((char*)send_buf,"cure:%4d,%4d,%4d,%4d",jiliang[0],jiliang[1],jiliang[2],jiliang[3]);
           tcp_client_sendbuf=send_buf;
         tcp_client_flag|=1<<7;
          while(tcp_client_flag & 1<<7)
        {
         lwip_periodic_handle();
              lwip_pkt_handle();
        }
              for(i=0;i<4;i++)
             {
                jiliang[i]=0;
               }   
      
      display(0);
          CaseState = 0;CaseState_PRE=4;
          break;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
652461466
1楼-- · 2019-08-21 17:56
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-08-21 22:54
帮顶
652461466
3楼-- · 2019-08-22 02:19
对不起,开始误导了大家。并不是只能传一次。应该是不断传送的过程中断连了。这是重新测试后的抓包结果。也就是发送一段时间后,电脑的服务器端没接收到。这个怎么解决啊? 抓包结果.png
652461466
4楼-- · 2019-08-22 03:41
652461466 发表于 2017-4-18 11:21
对不起,开始误导了大家。并不是只能传一次。应该是不断传送的过程中断连了。这是重新测试后的抓包结果。也 ...

@正点原子  原子哥帮忙看一下。我代码后面复制了如果没连接上,重新连接的那段程序,但是没用。应该怎么解决。
652461466
5楼-- · 2019-08-22 06:26
捕获图.png

一周热门 更多>