是上千个GPRS终端,要实时在线。
看有关资料有五种类型的套接字I / O模型: s e l e c t(选择)、W S A A s y n c S e l e c t(异步选择)、W S A E v e n t S e l e c t(事件选择)、o v e r l a p p e d(重叠)以及completion port(完成端口)。
原来想选用WSAEventSelect方式,但好像一个工作者线程最多支持64个终端,假如想让这个模型同时管理不止6 4个套接字,必须创建额外的工作者线程,这样会不会增加编程的复杂度?完成端口模型编程的复杂度会比事件选择模型复杂多少?完成端口模型能不能支持UDP方式?如何支持?多谢
看有关资料有五种类型的套接字I / O模型: s e l e c t(选择)、W S A A s y n c S e l e c t(异步选择)、W S A E v e n t S e l e c t(事件选择)、o v e r l a p p e d(重叠)以及completion port(完成端口)。
原来想选用WSAEventSelect方式,但好像一个工作者线程最多支持64个终端,假如想让这个模型同时管理不止6 4个套接字,必须创建额外的工作者线程,这样会不会增加编程的复杂度?完成端口模型编程的复杂度会比事件选择模型复杂多少?完成端口模型能不能支持UDP方式?如何支持?多谢
可以支持udp
BTW:UDP完全没必要用啥完成端口。
To:sevencat(七猫) 你用Select模型做过连接这么多个终端的项目么?和完成端口模型效率能差多少?比方说完成端口能连接1000个终端的话Select能连接多少终端?
多谢
举几个例子,我一个同事用delphi 的控件做的可以支持上千个Tcp
另外一个同事用VC做的,估计是用W S A E v e n t S e l e c t ,也能支持900个
但不知道什么原因上不了900,就卡这里了。用UDP你还要保证数据完整性,
没有速度上要求的话,可以用这个,然后用普通的socket就可以了。如果想速度快点,就用TCP, 这个最好用完成,这样支持的连接数多些。开发难度也差不多吧。
在速度上,不是我说反了, 原因在于确保UDP完整不丢数据。
我也是做gprs有关通信的;可以一起探讨探讨