关于SOCKET的问题,绝对精彩,不可不看(100分)

  • 主题发起人 主题发起人 cy408
  • 开始时间 开始时间
C

cy408

Unregistered / Unconfirmed
GUEST, unregistred user!
我要在ServerSocket的OnClientRead事件中写一些实现,包括写数据库、在界面上写一些
运行信息提示。但客户的数量较大,而且同时发到服务端的可能性较大。因而我想问各位
大虾的是:
  1、我是否需要在OnClientRead事件中调用一个多线程,以满足各客户端的数据处理
要求。
  2、有些资料上说ServerSocket为多线程,是否包括它的一些事件实现也在多线程中
执行,我只需直接在此写实现即可,而不用再编写多线程程序。
 
对了,serversocket是多线程,你只要在onclientRead中处理就是了,
不用再调另外一个线程程序
 
建议用多线程,ServerSocket只是保存了当前的所有连接而已,用户一多,
效率不高。而且如果你在onRead事件里用了很多全局变量很容易出问题。
 
dephi的Scoket控件有Block和nonBlock模式。一般使用nonBlock模式,在这个
模式下,onclientRead就是一个窗口事件,所以对你的程序是单线程,但底层是多线程的。
在Block模式下,你必须自己编写读写线程和流,效率虽高,但管理复杂。我认为nonBlock模式
符合大多数应用需要,同时处理几百个客户没有大问题。所以你不别编写多线程程序。
 
多人接受答案了。
 
后退
顶部