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