Список клиентов. В чем ошибка?
Здравствуйте!) Посмотрите что не так?
Активируется socket и отправляется сообщение:
procedure TForm1.Button2Click(Sender: TObject);
begin
if organiz.Text <> '' then
begin
ClientSocket1.Address:='127.0.0.1';
ClientSocket1.Port:=3030;
clientsocket1.Active:=true;
ClientSocket1.Socket.SendText(organiz.Text);
end
else
begin
organiz.SetFocus;
MessageDlg('Введите название организации', mtError,[mbOK],0);
end;
end;
Здесь запоминается и выводится socket:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
j:=j+1;
sockets[j]:=Socket.SocketHandle;
n:=j;
chat.Lines.Insert(0,inttostr(sockets[j]));
end;
Здесь должно приниматься сообщение с именем клиента и выводиться в clients (ListBox):
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var s: string;
begin
for i:=1 to n do
if Socket.SocketHandle = sockets[i] then
begin
s:=socket.ReceiveText;
name[i]:=s;
clients.items.add(s);
end;
end;
но почему то ничего не выводится... Смысл всего этого в том, чтоб при подключение клиента, в массив (sockets) заносилось значение socket.handle. Далее сразу же посылалось сообщение, содержащие имя клиента, которое также запоминалось в массиве (name) и заносилось в clients (listBox), чтоб потом прежде чем отправить сообщение, надо выбрать из списка имя клиента и потом по значению sockets этого имени отправлять сообщение, т.е определенному клиенту... А дальше при посылке другого сообщение проверять есть ли такой socket.handle в массиве, если да то проводить другой анализ, если нет, то записываем... но что то не так пошло с самого начало, а вот что? Спасибо)