MTK socket程序
以下是我在MTK上写的一段测试socket的代码:
kal_uint8 ipnA[16];
kal_uint8 addr_len = 0;
kal_uint8 ipdigit;
kal_uint8 j = 0;
kal_uint8 i = 0;
int ipn;
char *host = "125.71.134.85";
sock = soc_create(PF_INET, SOCK_STREAM, 0, MOD_JASYN, J2ME_current_active_nw_id);
if (sock < 0)
{
//error
}
if ((res = soc_setsockopt(sock, SOC_NBIO, &val, sizeof(val))) < 0)
{
#ifdef MMI_ON_HARDWARE_P
kal_print("Set socket to nonblock mode error !!");
#endif
return;
}
val = SOC_READ | SOC_WRITE | SOC_CLOSE;
if ((res = soc_setsockopt(sock, SOC_ASYNC, &val, sizeof(val))) < 0)
{
#ifdef MMI_ON_HARDWARE_P
kal_print("Set socket to nonblock mode error !!");
#endif
return;
}
SetProtocolEventHandler(em_soc_socket_notify, MSG_ID_APP_SOC_NOTIFY_IND);
for (i = 0; host[i]; i++)
{
ipdigit = 0;
for (; host[i] >= '0' && host[i] <= '9';)
{
ipdigit = ipdigit * 10 + (kal_uint8) host[i++] - '0';
}
if (j >= 4)
{
break;
}
ipnA[j++] = ipdigit;
}
addr_len = 4;
ipn = *(int*)ipnA;
addr.addr[0] = HADDR_0(ipn);
addr.addr[1] = HADDR_1(ipn);
addr.addr[2] = HADDR_2(ipn);
addr.addr[3] = HADDR_3(ipn);
addr.addr_len = sizeof(ipn);
addr.port = (unsigned short)81;
res = soc_connect(sock, &addr);
问题:
为什么最后调用 soc_connetct的时候就死掉了呢?谢谢赐教!!不胜感激