Chinaunix

标题: 有关VxWorks下套接字编程 [打印本页]

作者: andyx_c    时间: 2015-03-05 10:58
标题: 有关VxWorks下套接字编程
最近在搞VxWorks的套接字编程,需要用taskSpawn函数创建并激活任务,其中有个stackSize参数(任务栈大小)。

当我服务器端(VxWorks目标机)进入侦听状态,PC客户端发起连接成功后,
当USER_STACK_SIZE取为2000,NET_MSG_MAX_SIZE 取2000,一发起任务VxWorks目标机就重启,PC端显示连接成功。
当USER_STACK_SIZE改为20000之后,又可以正常通信了。
我怀疑是任务栈大小太小,VxWorks无法激活任务就崩溃了,可是这个  任务栈大小该如何设置呢?

此任务是在连接成功后才发起的,即循环接受PC端发送过来的数据。
taskSpawn(TNAME_NETRECV,TPRI_NETRECV,0,USER_STACK_SIZE,
(FUNCPTR)netRecv,0,0,0,0,0,0,0,0,0,0);         //netrecv


STATUS netRecv(void)
{
    char pBuff[NET_MSG_MAX_SIZE + 1];
    int recvLen;

    while(flagNetInit == NET_INIT_COMMUSKT)
    {
recvLen = recv(commuSkt,pBuff,NET_MSG_MAX_SIZE,0);
           if((recvLen != ERROR)&&(recvLen != 0))
{
    pBuff[recvLen] = 0;
    logMsg("netRecv:received message from client:\n%s\n",(int)pBuff,0,0,0,0,0);
}
else
{
    netCloseAll();
    return ERROR;
}
    }
    logMsg("netRecv:net connection is shut down,quit\n",0,0,0,0,0,0);
    return OK;
}




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2