Но там сообщения от сервера получают все клиенты, а как сделать что бы сообщение получал определенный клиент?
Первы раз взялся за клиент серверное приложение, застрял на этом, не пинайте сильно
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Модератор: Модераторы
Address := ParamStr(1);
FNet.IterReset; // start at server socket
while FNet.IterNext do begin // skip server socket, go to clients only
n := FNet.SendMessage(aMsg, FNet.Iterator);
if n < Length(aMsg) then
MemoText.Append('Error on send [' + IntToStr(n) + ']');
end;
while FNet.IterNext do
If FNet.Iterator.LocalAddress='192.168.0.12' Then //адрес взят с потолка ;-)
Begin
FNet.SendMessage(aMsg, FNet.Iterator);
Exit; //Выходим из цикла, он нам больше не нужен
End;
Var
mySock: TLSocket;
Begin
mySock:=FNet.Socks[Номер_клиента_по_списку_начиная_с_нуля];
mySock.SendMessage(aMsg);
End;
procedure TLTCPrmtserver.Run;
var
quit: Boolean;
s: String;
c: Char;
begin
quit := false;
s := '';
FNet.Listen(1305);
FNet.Listen(1501);
Writeln('Сервер запущен');
Writeln('''Escape'' - выход');
repeat
FNet.CallAction;
if KeyPressed then begin
c := ReadKey;
case c of
#27: quit := true;
#8: begin
if Length(s) > 1 then Delete(s, Length(s) - 1, 1)
else s := '';
GotoXY(WhereX - 1, WhereY);
Write(' ');
GotoXY(WhereX - 1, WhereY);
end;
#10,
#13: begin
FNet.SendMessage(s);
s := '';
Writeln;
end;
else begin
s := s + c;
Write(c);
end;
end;
end;
until quit;
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1