
在做一个监控系统,服务器端的简单模型如上,每个套接字大概每一分钟就接收到一份数据(但不一定同时),想直接依赖mfc的csoket和carchive的这种异步io模型,
在CSocket::OnRecieve等函数里处理异步数据,即调用下面那个“read,process,store to db"模块,有几个疑问:
1.需不需要担心CArchive和socket的缓存大小,缓存满了新到的数据会不会丢失,还是客户端会重发?(流式套接字)
2.不用多线程是否可行(主要是这个问题)。
我设想的过程是这样的不知道对不对:
1>一旦某个socket接收到数据就调用OnReceive相应函数,在里面调用下面那个模块。
2>如果在处理socket A接收到的数据时,socket B有数据到达,此时会有一个receive消息传递给socket B, 在随后的消息循环中会取出并调用B的响应函数进一步处理数据。
3>应用程序按消息取出顺序处理各socket接收到的数据,也不会同时访问数据库(不需要处理同步)
我知道比较拙劣,也许概念上就有问题。十分感谢前辈们的指点和帮助!