O ortega Unregistered / Unconfirmed GUEST, unregistred user! 2009-11-13 #1 我的服务端有多个客户端连接,服务端程序里有自定义类的多个实例运行,每个实例通过服务端的SSoceket: TServerSocket向客户端发送数据,是不是要将SSoceket传递到一个线程中,在线程里实现数据的发送,或者谁有什么好的建议,说下
我的服务端有多个客户端连接,服务端程序里有自定义类的多个实例运行,每个实例通过服务端的SSoceket: TServerSocket向客户端发送数据,是不是要将SSoceket传递到一个线程中,在线程里实现数据的发送,或者谁有什么好的建议,说下
N noeyes Unregistered / Unconfirmed GUEST, unregistred user! 2009-11-13 #2 假设你的自定义类是TMyClass,其中包含一个私有域成员m_Socket: TCustomWinSocket,在TServerSocket的OnConnect事件里,创建你的实例,像这样rocedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin MyClassList.Add(TMyClass.Create(Socket)); // 创建自定义类实例并加入到列表中end; ....constructor TMyClass.Create(Socket: TCustomWinSocket); begin inherited; m_Socket := Socket;// ...end; 这样,你就可以在TMyClass里使用 m_socket.Sendbuf()发送了...另外TServerSocket的OnDisConnect里处理的啥,我想你也应该知道了。
假设你的自定义类是TMyClass,其中包含一个私有域成员m_Socket: TCustomWinSocket,在TServerSocket的OnConnect事件里,创建你的实例,像这样rocedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin MyClassList.Add(TMyClass.Create(Socket)); // 创建自定义类实例并加入到列表中end; ....constructor TMyClass.Create(Socket: TCustomWinSocket); begin inherited; m_Socket := Socket;// ...end; 这样,你就可以在TMyClass里使用 m_socket.Sendbuf()发送了...另外TServerSocket的OnDisConnect里处理的啥,我想你也应该知道了。
K kk2000 Unregistered / Unconfirmed GUEST, unregistred user! 2009-11-13 #3 我觉得每个客户的请求都开一个单独的线程服务, 但线程数量有个限制, 达到线程的最高限制就提示服务繁忙。 基本就是这样了。