TI中文支持网
TI专业的中文技术问题搜集分享网站

用cc3200,参考的例程是2.16 tcp_socket,手机AP用iperf,手机端怎么才能接受经过3200发送的数据信息

用cc3200,参考的例程是2.16 tcp_socket,手机AP用iperf,手机端怎么才能接受经过3200发送的数据信息,望大神指教。

gaoyang9992006:

http://processors.wiki.ti.com/index.php/CC32xx_TCP_Socket_Application

这里面有个说明

lichao niu:

回复 gaoyang9992006:

用的就是这个例子,但是手机端只是现实接受完成,发送完成,不显示接收的数据内容,怎样才能在手机上显示发送的数据内容,万分感谢

lichao niu:

回复 Terry Han:

手机端只是显示接收数据完成,发送数据完成,但是具体接收的数据是啥不能在手机上显示。我做的是想把数据信息在手机上显示出来。万分感谢

Terry Han:

回复 lichao niu:

我用过有人的网络手机(安卓)网络助手《有人网络助手》,如我之前说所的打开软件,增加连接,输入IP地址+端口号,等待或者向目的CC3200的建立的IP地址和端口号进行收发数据。数据也会显示在手机的助手中,其他的手机软件没有测试过。

lichao niu:

回复 Terry Han:

我试了试,手机下载了有人网络助手,但是连接不上,您当时用的时候咋连接的?麻烦您了

Terry Han:

回复 lichao niu:

我当时是测试example/{hib}实验建立的UDP的连接,简单写一下当时的测试记录吧

CC3200-STA采用DHCP方式 获取AP分配给自己的IP地址。注意创建UDP-Socket仅用到iSocketDesc = sl_Socket(AF_INET, SOCK_DGRAM, 0);

唯一返回的是UDP Socket的ID号,利用该ID号,向固定的端口广播UDP数据:

sBroadcastAddr.sin_family = AF_INET;                                       IPv4 socket (UDP, TCP, etc)

sBroadcastAddr.sin_addr.s_addr= sl_Htonl(0xFFFFFFFF);     255.255.255.255

sBroadcastAddr.sin_port= sl_Htons(APP_UDP_PORT);         目的UDP的端口号5001

  Broadcast message

lRetVal = sendto(iSocketDesc, (char *)&pcBroadcastMessage[0],sizeof(pcBroadcastMessage), 0,(struct sockaddr *)&sBroadcastAddr,sizeof(sBroadcastAddr));

<1>注意CC3200在创建UDP-Client时,并没有指定自己的UDP端口号,仅仅是获得了socket的ID号,在UDP发送数据时①获取socket的ID号②指定目的IP地址或者采用广播IP地址255.255.255.255③指定目的IP的端口号

<2>注意在创建完UDP-socket时仅仅建立了一个UDP-Client并没有进行sl_Bind即没有建立UDP-Server建立服务器,建立Server时具体操作如下:

 sAddr.sin_family = SL_AF_INET;

 sAddr.sin_port = sl_Htons((unsigned short)usPort);        CC3200   UDP本地Server端口号

 sAddr.sin_addr.s_addr = sl_Htonl((unsigned int)0xc0a80169);  CC3200静态IP 192,168,1,105

 是不是不用指定本地IP地址?还是静态IP需要指定,DHCP方式?–Test

  iAddrSize = sizeof(SlSockAddrIn_t);

    binding the UDP socket to the UDP server address

  iStatus = sl_Bind(iSockID, (SlSockAddr_t *)&sAddr, iAddrSize); 绑定完成开启Server模式

Test测试结果如下:

在sl_Socket()后面增加如下Bind信息

     —————————————————-增加—————————————————-

    unsigned long ulIP = 0;

    unsigned long ulSubMask = 0;

    unsigned long ulDefGateway = 0;

    unsigned long ulDns = 0;

   

    SlSockAddrIn_t  sAddr;

    int             iAddrSize;

    int             iStatus;

   

      Get IP address  当开启DHCP可以通过下面函数获取自己IP等网络信息

 lRetVal = Network_IF_IpConfigGet(&ulIP,&ulSubMask,&ulDefGateway,&ulDns);   获取IP地址

   

    sAddr.sin_family = SL_AF_INET;

    sAddr.sin_port = sl_Htons((unsigned short)6001);         指定自己的UDP端口号 Test OK 可以指定UDP的端口号

    sAddr.sin_addr.s_addr = sl_Htonl((unsigned int)ulIP);    数据格式ulIP=0xc0a80108  获取自 己的IP地址192,168,1,8

  sAddr.sin_addr.s_addr = sl_Htonl((unsigned int)0);       Test IP adr=0  OK 没有影响,难道这个参数没有影响?—没有影响!看其他历程中直接将本地地址为0

    iAddrSize = sizeof(SlSockAddrIn_t);

   

      binding the UDP socket to the UDP server address

    iStatus = sl_Bind(iSocketDesc, (SlSockAddr_t *)&sAddr, iAddrSize);

    if( iStatus < 0 )

    {  error

        sl_Close(iSocketDesc);

       ASSERT_ON_ERROR(BIND_ERROR);

}

 ———————————————————————————————————————-

   注意到测试OK本地CC3200的IP地址可以设为0,貌似这个参数没什么影响,但是端口号,确实可以指定具体号码,从手机端测试就可以看出。注意PC端口的网络调试工具,数据延迟很严重,跟网络保护可能有关系      

手机客户端创建UDP-Server接收CC3200发送过来数据

赞(0)
未经允许不得转载:TI中文支持网 » 用cc3200,参考的例程是2.16 tcp_socket,手机AP用iperf,手机端怎么才能接受经过3200发送的数据信息
分享到: 更多 (0)