网络通讯(100)

O

ortega

Unregistered / Unconfirmed
GUEST, unregistred user!
我的服务端有多个客户端连接,服务端程序里有自定义类的多个实例运行,每个实例通过服务端的SSoceket: TServerSocket向客户端发送数据,是不是要将SSoceket传递到一个线程中,在线程里实现数据的发送,或者谁有什么好的建议,说下
 
N

noeyes

Unregistered / Unconfirmed
GUEST, unregistred user!
假设你的自定义类是TMyClass,其中包含一个私有域成员m_Socket: TCustomWinSocket,在TServerSocket的OnConnect事件里,创建你的实例,像这样:procedure 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!
我觉得每个客户的请求都开一个单独的线程服务, 但线程数量有个限制, 达到线程的最高限制就提示服务繁忙。 基本就是这样了。
 
顶部