This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

Other Parts Discussed in Thread: CC3200

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

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

    这里面有个说明

  • 手机端的的安卓平台下的tcp、 udp的网络助手,一般的做法都是打开,增加连接,输入IP地址+端口号,等待或者向目的CC3200的建立的IP地址和端口号进行收发数据。

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

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

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

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

  • 我当时是测试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发送过来数据