动态创建多个TclientSocket时,在OnRead事件中如何处理接收到的数据,程序如下: for I:= 0 to Count-1 do
begin
pClientSocket[i] := TClientSocket.Create(nil);
// 关联数据
pClientSocket[i].OnConnect := OnMySocketConnect;
pClientSocket[i].OnConnecting := OnMySocketConnecting;
pClientSocket[i].OnError := OnMySocketError;
pClientSocket[i].OnRead := OnMySocketRead;
pClientSocket[i].OnDisconnect := OnMySocketDisconnect;
pClientSocket[i].Active := false;
pClientSocket[i].ClientType := ctNonBlocking;
end; procedure OnMySocketRead(Sender: TObject; Socket: TCustomWinSocket)
begin
// 此处如何读取每个Tclientsocket的数据
end;
begin
pClientSocket[i] := TClientSocket.Create(nil);
// 关联数据
pClientSocket[i].OnConnect := OnMySocketConnect;
pClientSocket[i].OnConnecting := OnMySocketConnecting;
pClientSocket[i].OnError := OnMySocketError;
pClientSocket[i].OnRead := OnMySocketRead;
pClientSocket[i].OnDisconnect := OnMySocketDisconnect;
pClientSocket[i].Active := false;
pClientSocket[i].ClientType := ctNonBlocking;
end; procedure OnMySocketRead(Sender: TObject; Socket: TCustomWinSocket)
begin
// 此处如何读取每个Tclientsocket的数据
end;
for I:= 0 to Count-1 do
begin
pClientSocket[i] := TClientSocket.Create(nil);
pClientSocket[i].OnConnect := OnMySocketConnect;
pClientSocket[i].OnConnecting := OnMySocketConnecting;
pClientSocket[i].OnError := OnMySocketError;
pClientSocket[i].OnRead := OnMySocketRead;
pClientSocket[i].OnDisconnect := OnMySocketDisconnect;
pClientSocket[i].Active := false;
pClientSocket[i].ClientType := ctNonBlocking;
pClientSocket[i].tag := i;
end; procedure OnMySocketRead(Sender: TObject; Socket: TCustomWinSocket)
begin
if not(Sender is TClientSocket) then exit;
case TClientSocket(Sender).tag of
0: ...
1: ...
...
end;
end;