tong860105 发表于 2012-3-10 12:47:08

MFC 开发GPRS后台服务器,超时检测问题请教。

我想用MFC来做一个GPRS后台服务器软件,在服务器端也可以接收GPRS终端socket的连接了。
问题:
该服务器软件会有多个终端连接到这个开辟的端口上,socket方式采用非阻塞模式,但是对于每一个终端连接上服务器后,过了一段时间(比如说60s)还没有数据服务器软件就要把它断开并删掉这个失效的socket;这个60s一般是通过定时器来实现,对于另外一个终端可能这个间隔又不一样可能是70s,那么是不是在服务器软件里,每来一个客户端,都要开辟一个这样的定时器呢?如果是这样,1000个终端在线,那是不是就要打开1000个定时器?谁有更好的方法吗?

nazily215 发表于 2012-3-10 12:55:36

那就只开一个定时器,专门用来检测超时的,这是一个小间隔,例如,1s
接着对每个连接进行超时计数,如,第一个计60次,第二个计70次。。。
也就是说用2个变量来对比,一个当前值,一个阈值

sunny_82 发表于 2012-3-10 13:22:23

用线程。每个线程自己管理自己的时间
页: [1]
查看完整版本: MFC 开发GPRS后台服务器,超时检测问题请教。