咨询一个ServerSocket 如何接收的问题!(20分)

  • 主题发起人 主题发起人 新来的菜鸟
  • 开始时间 开始时间

新来的菜鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
如果当多个ClientSocket同时并发消息的时候,ServerSocket接收机制是如何接收消息的,是让并发的消息进行列队然后一条条的接收吗(也就是说当接收一条信息执行完ServerSocket1ClientRead事件后再接收第二条列对的信息),还是同时接收所有信息这样会不会有丢包的可能,如果是同时接收信息我该如何处理成让消息列队一条一条接收,小弟对ServerSocket接收机制概念比较模糊,那位大哥受累帮解释一下,谢谢!
 
我觉得应该是用的多线程吧
 
呵呵,这个问题好呀,问到了点子上了。
当然是队列+线程池模式实现啦,如果全部调试通过,效率还是很高的,而且不会出现堵塞,千万别用stThreadBlocking模式(别贪图代码的简洁哟)。若有数据库连接,再加上连接池。我是将读请求、处理、应答三部分分三个线程池、再开设三个对应的任务队列实现的,以便系统发挥最大效能。
 
to wpy020327
能不能给个例子呢?(我是将读请求、处理、应答三部分分三个线程池、再开设三个对应的任务队列实现的,以便系统发挥最大效能。)能不能吧你说的这些方法给个简单的原码例子给我呢?小弟想学习学习?万分感谢!
yangzongling18@163.com
 
关键的一点是在TServerSocket的OnClientRead等事件里,把那个传入的Socket:TCustomWinsocket参数与具体的任务或消息绑定,在线程里分配待处理任务时,同时获得该socket对象,以便进行收发处理。具体代码你自己写,我在外地,手头没代码。
 
多人接受答案了。
 
后退
顶部