OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3971|回复: 5

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

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-3-8
在线时间
5 小时
发表于 2017-4-14 14:29:54 | 显示全部楼层 |阅读模式
3金钱
最近在学习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;

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-3-8
在线时间
5 小时
 楼主| 发表于 2017-4-14 14:39:10 | 显示全部楼层
原程序中发送完数据就关掉连接的部分,我注销掉了;
@{~TO7G6`SC$EK1{3D5NLNH.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-4-14 18:49:57 | 显示全部楼层
帮顶
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-3-8
在线时间
5 小时
 楼主| 发表于 2017-4-18 11:21:57 | 显示全部楼层
对不起,开始误导了大家。并不是只能传一次。应该是不断传送的过程中断连了。这是重新测试后的抓包结果。也就是发送一段时间后,电脑的服务器端没接收到。这个怎么解决啊? 抓包结果.png
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-3-8
在线时间
5 小时
 楼主| 发表于 2017-4-18 11:23:16 | 显示全部楼层
652461466 发表于 2017-4-18 11:21
对不起,开始误导了大家。并不是只能传一次。应该是不断传送的过程中断连了。这是重新测试后的抓包结果。也 ...

@正点原子  原子哥帮忙看一下。我代码后面复制了如果没连接上,重新连接的那段程序,但是没用。应该怎么解决。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-3-8
在线时间
5 小时
 楼主| 发表于 2017-4-18 11:28:21 | 显示全部楼层
捕获图.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-22 01:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表