TServerSocket需要你自己实现多线程机制么?
你只要把TServerSocket设成non-block的,你的ClientSocket就只管连上来就是了.
至于怎么判定/处理特定的ClientSocket,你可以自己内建一张表.在TServerSocket的OnConnect
事件里往表里添加连接上来的ClientSocket的Handle以及相关描述信息(比如聊天室里的nick),
以及在TServerSocket的ondisconnect事件里删除相应的ClientSocket Handle表项.
连接上来的ClientSocket Handle可以通过ServerSocket事件的socket参数获得.(Server Socket
的所有事件好象都有这个参数).要用时,比如ServerSocket的OnRead时,你可以通过onRead的
Socket参数在你的表里查找对应的信息然后决定具体的操作(比如,irc里,当a开b的小窗时,
你可以通过ServerSocket.OnRead的socket参数在表中查找判定说话人是a,对象是b,到表中找出nick为b
的人对应的socket handle,在ServerSocket.Socket.ActiveConnections里查找相应handle,再
再用ServerSocket.socket.ActiveConnections[n].sendtext发送就可以了),依此就可以实现
所有的操作.