MTK实现UDP连接问题
我这样来实现UDP的连接,
kal_uint8 val=KAL_TRUE;
kal_int8 soc_ret;
//kal_int8 soc_id;
kal_uint8 UDP_send_buf[] = "Hello!";
EntryNewScreen(333, 0, 0, NULL);
clear_screen();
//soc_id = soc_create(2, SOC_SOCK_DGRAM, 0, MOD_MMI, 14); //AF_INET==2,这样create失败soc_id < 0
soc_id = soc_create(SOC_PF_INET, SOC_SOCK_DGRAM, 0, MOD_MMI, 14);
if( soc_id < 0)
{
gui_move_text_cursor(0, 0);
gui_set_text_color(UI_COLOR_RED);
gui_print_text( L"Create fail!");
gui_BLT_double_buffer( 0, 0, UI_device_width -1, UI_device_height -1);
return ;
}
if(soc_setsockopt(soc_id, SOC_NBIO, &val, sizeof(val)) < 0)
{
return ;
}
val = SOC_READ | SOC_WRITE | SOC_CLOSE | SOC_CONNECT | SOC_ACCEPT ;
if(soc_setsockopt(soc_id, SOC_ASYNC, &val, sizeof(val)) < 0)
{
return ;
}
memset( &my_ip_addr, 0, sizeof(sockaddr_struct));
my_ip_addr.addr[0] = 123;
my_ip_addr.addr[1] = 65;
my_ip_addr.addr[2] = 212;
my_ip_addr.addr[3] = 142;
my_ip_addr.addr_len = 4;
my_ip_addr.port = 6001;
my_ip_addr.sock_type = SOC_SOCK_DGRAM;
soc_ret = soc_bind(soc_id,&my_ip_addr);//来到这里绑定失败
if(soc_ret != SOC_SUCCESS)
{
gui_move_text_cursor(0, 30);
gui_set_text_color(UI_COLOR_RED);
gui_print_text( L"bind error!");
gui_BLT_double_buffer( 0, 0, UI_device_width -1, UI_device_height -1);
soc_close(soc_id);
}
else
{
soc_ret = soc_sendto(soc_id,UDP_send_buf,(kal_uint32)strlen((const char *)UDP_send_buf),0,&my_ip_addr);
if(soc_ret > 0)
{
my_socket_receive();
}
}
}
我想用UDP连接去发送数据和接收数据,但是总是绑定失败,我这样写有什么问题吗?不惜赐教。。。。