udp socket一样的代码为什么Linux行,Vxworks就不行?(有码)
udp socket同样的代码为什么Linux行,Vxworks就不行?(有码)
void usrAppInit (void)
{
#ifdef USER_APPL_INIT
USER_APPL_INIT; /* for backwards compatibility */
#endif
/* add application specific code here */
int count, loopi, j;
BYTE node_id = sysProcNumGet();
END_OBJ * pEnd;
char ipaddr[40];
END_TBL_ENTRY* pDevTbl;
BYTE bMasterMacAddress[6];
BYTE byFpgaStatus;
DWORD dwNodeType;
int sockd;
struct sockaddr_in my_addr, srv_addr;
char buf[2048];
int addrlen;
/*网口初始化*/
if (mBlkInit() != OK)
{
printf("intercom_init: mBlkInit fail!\n");
}
/*set mac address and IP address*/
bMacAddress[0][5] = node_id;
bMacAddress[1][5] = node_id;
for (loopi = 0; loopi < 2; loopi++)
{
pRouteCookie[loopi] = NULL;
}
muxAddrResFuncAdd (M2_ifType_ethernet_csmacd, 0x800, arpresolve);
/* Add in mux ENDs. */
for (count = 0, pDevTbl = endDevTbl; pDevTbl->endLoadFunc != END_TBL_END;
pDevTbl++, count++)
{
if (!pDevTbl->processed)
{
pEnd = (END_OBJ *) muxDevLoad(pDevTbl->unit,
pDevTbl->endLoadFunc,
pDevTbl->endLoadString,
pDevTbl->endLoan, pDevTbl->pBSP);
if (pEnd == NULL)
{
printf("muxDevLoad failed for device entry %d!\n", count);
}
}
}
for (loopi = 0; loopi < count; loopi++)
{
pEnd = endFindByName("lnPci", loopi);
pRouteCookie[loopi] = muxBind("lnPci", loopi, (FUNCPTR)intercom_device_mux_receive_return, NULL, NULL, NULL, END_INTERNODE_COMM, "END_INTERNODE_COMM", 0);
if (pRouteCookie[loopi] == NULL)