找回密码
 注册
搜索
查看: 845|回复: 0

[讨论] socket udp方式能用吗

[复制链接]
发表于 2015-12-15 10:31:58 | 显示全部楼层 |阅读模式
本帖最后由 xiaoganga 于 2015-12-15 14:29 编辑

void UDP_send_test(void)
{
      sockaddr_struct server_addr;
      int ret;
      U8 send_buff[]="helloworld";
          
      server_addr.addr[0] = 212;
      server_addr.addr[1] = 220;
      server_addr.addr[2] = 124;
      server_addr.addr[3] = 103;           
      server_addr.port = 5963;
      server_addr.addr_len = 4;
      server_addr.sock_type = SOC_SOCK_DGRAM;               
     
       ret = soc_sendto(g_udp_soc_context.socId,(kal_uint8*)send_buff,sizeof(send_buff),0, &server_addr);

       if(ret == SOC_WOULDBLOCK)
       {
           SetProtocolEventHandler(udp_socketNotify, MSG_ID_APP_SOC_NOTIFY_IND);
       }
          
       StartTimer(UDP_SEND_TIMER, 10 * 1000, UDP_send_test);
}

kal_int8 UDP_SocketConnect(void)
{
      kal_int8 ret = 0;
      sockaddr_struct server_addr;
          
      server_addr.addr[0] = 212;
      server_addr.addr[1] = 220;
      server_addr.addr[2] = 124;
      server_addr.addr[3] = 103;           
      server_addr.port = 5963;
      server_addr.addr_len = 4;
      server_addr.sock_type = SOC_SOCK_DGRAM;                   

       ret = soc_bind(g_udp_soc_context.socId, &server_addr);       
          
        if(ret == SOC_WOULDBLOCK || ret == SOC_SUCCESS)
        {
                SetProtocolEventHandler(udp_socketNotify, MSG_ID_APP_SOC_NOTIFY_IND);
                               
                 if (ret == SOC_SUCCESS)
                 {
                    //
                 }              
        }

      UDP_send_test();
}

mtk60平台,socket创建成功了,但是发消息服务器收不到,soc_bind 返回值为0,bind是成功的,然后每10s MTK60发一次udp消息给服务器,soc_sendto返回值为11,服务器几乎一直收不到,有时候在MTK60开机时能收到2个包,然后以后一直收不到!直接贴代码,请高手指点!
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-21 00:14 , Processed in 0.042990 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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