现在做的项目要实现一个多任务服务器,能够同时处理多个客户机的处理请求。直接上架构吧。void task0()
{
...
bind();
listen();
while(1)
{
accept();
OSTaskCreateExt(task1,....);
}
}
void task1()
{
recv();
process();
sendback();
}
大概是这个架构的,现在的问题是当我第一个请求来的时候,服务器在处理中,第二个请求来,服务器能接受请求,但是不能处理。起初考虑到的是新建的任务堆栈冲突问题,之后改掉了。后来发现accept()函数中对连接中有连接的情况是直接break;把这个改为return 0xFF。。可是问题仍然无法解决。。求大神高手指点,我知道这个架构肯定有问题,但就是想在这个架构下实现,不知道有什么方法。
PS:我的操作系统是uCOS-II。。。。 |