5643|9

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

CC3200 TCP 编程 [复制链接]

我遇到一个问题,想请教你一下,
[size=1em]
[size=1em]?

[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em]5

[size=1em]6

[size=1em]7

[size=1em]8

[size=1em]9

[size=1em]10

[size=1em]11

[size=1em]12

[size=1em]13

[size=1em]14

[size=1em]15

[size=1em]16

[size=1em]17

[size=1em]18

[size=1em]19

[size=1em]20

[size=1em]21

[size=1em]22

[size=1em]23

[size=1em]24

[size=1em]25

[size=1em][size=1em]if (g_ucUARTBuffer[0]!=0)     //串口的额数据
[size=1em]            {
[size=1em]                // sending packet  Ibcon的数据
[size=1em]                iStatus = sl_Send(iSockID1, g_ucUARTBuffer, sizeof(g_ucUARTBuffer), 0 );//发送TCP数据
[size=1em]                if(iStatus<=0)
[size=1em]                {
[size=1em]                    ASSERT_ON_ERROR(sl_Close(iSockID1));
[size=1em]                    ASSERT_ON_ERROR(TCP_CLIENT_FAILED);
[size=1em]                }
[size=1em]                memset(g_ucUARTBuffer, 0, sizeof(g_ucUARTBuffer));
[size=1em]            }
[size=1em]            //接收来自服务器的TCP数据。
[size=1em]              iStatus = sl_Recv(iSockID1,g_cBsdbuf,sizeof(g_cBsdbuf),0);
[size=1em]              if(iStatus > 0)
[size=1em]              {
[size=1em]                  UART_PRINT("recv ok\n");
[size=1em]                  UART_PRINT(">>>%s\r\n", g_cBsdbuf);
[size=1em]
[size=1em]              }
[size=1em]              else
[size=1em]              {
[size=1em]                  ASSERT_ON_ERROR(sl_Close(iSockID1));
[size=1em]                  ASSERT_ON_ERROR(TCP_CLIENT_FAILED);
[size=1em]              }
[size=1em]              memset(g_cBsdbuf, 0, sizeof(g_cBsdbuf));



单独的发送和接收都可以,当一起运行的时候,就会出现,当串口数据发送时候,服务器那边没有显示接收的数据,只有当服务器那边发送数据的时候,才会显示出从串口发过来的数据,这是为什么?
有什么解决方法吗?

此帖出自无线连接论坛

最新回复

楼上是玩Arduino的??  详情 回复 发表于 2015-5-28 11:17
点赞 关注
 

回复
举报

12

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
程序是这样写的
if (g_ucUARTBuffer[0]!=0)     //串口的额数据
            {
                // sending packet  Ibcon的数据
                iStatus = sl_Send(iSockID1, g_ucUARTBuffer, sizeof(g_ucUARTBuffer), 0 );//发送TCP数据
                if(iStatus<=0)
                {
                    ASSERT_ON_ERROR(sl_Close(iSockID1));
                    ASSERT_ON_ERROR(TCP_CLIENT_FAILED);
                }
                memset(g_ucUARTBuffer, 0, sizeof(g_ucUARTBuffer));
            }
            //接收来自服务器的TCP数据。
              iStatus = sl_Recv(iSockID1,g_cBsdbuf,sizeof(g_cBsdbuf),0);
              if(iStatus > 0)
              {
                  UART_PRINT("recv ok\n");
                  UART_PRINT(">>>%s\r\n", g_cBsdbuf);

              }
              else
              {
                  ASSERT_ON_ERROR(sl_Close(iSockID1));
                  ASSERT_ON_ERROR(TCP_CLIENT_FAILED);
              }
              memset(g_cBsdbuf, 0, sizeof(g_cBsdbuf));
此帖出自无线连接论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
貌似是RECV()函数是阻塞的,有没有什么方法可以解决,比较急!!!!!谢谢
此帖出自无线连接论坛
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

4
 
recv是阻塞的话用多线程啊
或者直接使用socket的select函数,了解一下这个函数吧

多线程或者使用select函数
此帖出自无线连接论坛

点评

还有就是如果用多线程的,我TCP连接可以在每一个线程中都连接一遍吗?  详情 回复 发表于 2015-5-26 11:05
你能根据我上面的程序,帮我写一下吗?  详情 回复 发表于 2015-5-26 10:51
_i16 sl_Select(_i16 nfds, SlFdSet_t *readsds, SlFdSet_t *writesds, SlFdSet_t *exceptsds, struct SlTimeval_t *timeout);这个函数中参数我怎么设置才能处理这个情况  详情 回复 发表于 2015-5-26 10:47
个人签名电工
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

5
 


_i16 sl_Select(_i16 nfds, SlFdSet_t *readsds, SlFdSet_t *writesds, SlFdSet_t *exceptsds, struct SlTimeval_t *timeout);这个函数中参数我怎么设置才能处理这个情况
此帖出自无线连接论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

6
 


你能根据我上面的程序,帮我写一下吗?
此帖出自无线连接论坛
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(初级)

7
 
不懂! 路过还是帮你顶下!!
此帖出自无线连接论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

8
 


还有就是如果用多线程的,我TCP连接可以在每一个线程中都连接一遍吗?
此帖出自无线连接论坛

点评

用多线程的话,目前仅仅是接收部分,当然了连接开始连接一次就行了‘ 等你都搞通了在慢慢优化吧,还需要实现重连机制的嘛,这是基本的了 一点点来吧,socket编程,可以找些文章看看在动手,你现在基础有些问题  详情 回复 发表于 2015-5-26 15:59
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

9
 
dongjie_0000 发表于 2015-5-26 11:05
还有就是如果用多线程的,我TCP连接可以在每一个线程中都连接一遍吗?

用多线程的话,目前仅仅是接收部分,当然了连接开始连接一次就行了‘
等你都搞通了在慢慢优化吧,还需要实现重连机制的嘛,这是基本的了

一点点来吧,socket编程,可以找些文章看看在动手,你现在基础有些问题
select要理解了才能用起来,你理解了么
此帖出自无线连接论坛
个人签名电工
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(初级)

10
 
楼上是玩Arduino的??
此帖出自无线连接论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表