Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

TIdTCPServer - узнать IP или имя кто к нему приконнектился...   Найти похожие ветки 

 
Layner ©   (2006-11-17 11:43) [0]

В примере "IdTCPDemo" у них видимо ошибка, вместо имени клиента возвращается имя сервера... как следствие, не понятно, кто законнектился...

procedure TServerFrmMain.ServerConnect(AThread: TIdPeerThread);
var
 NewClient: PClient;
begin
 GetMem(NewClient, SizeOf(TClient));

{! в сл. строке не точность...}
 NewClient.DNS         := AThread.Connection.LocalName; {! возвращает имя сервера, а не клиента!}
 NewClient.Connected   := Now;
 NewClient.LastAction  := NewClient.Connected;
 NewClient.Thread      :=AThread;

 AThread.Data:=TObject(NewClient);

 try
   Clients.LockList.Add(NewClient);
 finally
   Clients.UnlockList;
 end;
 Protocol.Lines.Add(TimeToStr(Time)+" Connection from ""+NewClient.DNS+""");
end;


 
Layner ©   (2006-11-17 11:56) [1]

Дошло :)
AThread.Connection.Socket.Binding.PeerIP


 
Сергей М. ©   (2006-11-17 11:57) [2]

Клиент не обязан фигурировать в DNS, так что затея вряд ли оправдана.
Гораздо полезней знать IP-адрес клиента, нежели имя его хоста, которого может и не быть.

А вот это

Protocol.Lines.Add

делать в дан.контексте не допустимо - обработчик иполняется в контексте потока AThread, а не в основном потоке


 
Reindeer Moss Eater ©   (2006-11-17 11:57) [3]

AThread.Connection.LocalName; {! возвращает имя сервера, а не клиента!}

А с какого перепугу локалнэйм серверного треда должно быть клиентом?


 
Layner ©   (2006-11-17 13:08) [4]

Reindeer Moss Eater ©   (17.11.06 11:57)
Может я что не понял, но если у меня логинятся 3 клиента, а в СЕРВЕРЕ пишется 3 раза

10:35:59 Connection from "Vasia" (Это конект с машины 192.168.0.51)
10:36:59 Connection from "Vasia" (Это конект с машины 192.168.0.52)
10:37:59 Connection from "Vasia" (Это конект с машины 192.168.0.53)

Или пример такой... в общем не удобно, переделал :)



Страницы: 1 вся ветка

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
2-1178525432
RomanLN
2007-05-07 12:10
2007.05.27
При переносе БД на другой комп, не находит алис


15-1177489164
db2admin
2007-04-25 12:19
2007.05.27
Это не обьявление войны это пропоганда, зачем?


4-1166907320
Степан
2006-12-23 23:55
2007.05.27
НЕстандартная панель инструментов


1-1174765457
Дмитрий Белькевич
2007-03-24 22:44
2007.05.27
Можно ли в методе объекта узнать название метода?


2-1178640144
DeadTeachers
2007-05-08 20:02
2007.05.27
COM - порт