每客户开一个线程处理和异步IO(事件模型) 谁实用?
我的应用平台是WINCE, 读取和控制RS485设备.
我将设备层做一个服务, 接收大家的控制, 服务读到数据, 并广播给每个连接的客户端.
现在有2种方式响应客户端连接;
1.accept 后, 每个客户端开个线程处理应答.
例如: 基于TCP/IP的局域网多用户通信; http://www.vckbase.com/document/viewdoc/?id=349
2.采用异步IO WSAEventSelect 来实现;
例如: http://blog.csdn.net/wanjingwei/archive/2009/06/29/4306609.aspx
我的应用实际情况是, 客户端通常只有1~2个, 因为是CE, 最大不容许超过5个. 都属于长时间连接.
所以我觉得方式1更加适合我的情况,
方式2的问题在于:
当同时有2个客户端发了消息, 只能等第一个处理完后, 再处理第二个, 实时性似乎不够好.
大家觉得呢?