各位Delphi高手好!
    本人目前开发了一个聊天程序(大聊天室),界面是模仿腾讯的(腾讯的QQ的确是功能强大,界面设计及其运行机制具有很高的技术含量,本人设计过程中深有体会)。
    在开发服务器端程序时,我没有采用ServerSocket控件,而是用线程负责客户端信息的接收。为了接收不同客户端Socket信息,我认为有两种方法:
    一:采用CM_SocketMessage消息绑定于WSAAsyncSelect函数中,有信息到来时触发其消息事件,通过参数可取得其Socket,并读取数据。
    二: 在accept循环中每收到一个Socket连接将其加入到链表,采用线程循环扫描
其Socket链表(缺点:占用CPU时间,尽管降低其优先权),发现有数据时就读取。
    现在这两种方法都可行,我用的是第二种,问题是哪种方法效率更高。我个人认为采用第一种方法会形成消息队列,而操作系统本身就要处理繁多的消息,这样是否会影响效率。
    还有更好的方法吗?请各位同仁发表发表高见!
    谢谢!!!