![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IDUdp [D7]
Dstr © (2006-06-10 15:45:00)Добрый день,у меня такая проблема:Пишу чат на IDUdp и вызывая Broadcast,каждый пакет приходит почемуто по 2 раза,например:
Вызываю
Client.Broadcast('гыгы',ServiseLokNet.GlobalServer.DefaultPort);
Обрабатываю:
procedure TServiseLokNet.GlobalServerUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Begin;
ShowMessage('апвалп'); //ето сообщение отобразится 2 раза,почему?
End,
Eraser (2006-06-10 23:28:00) [1]
> Dstr © (10.06.06 17:56) [2]
> ShowMessage(ABinding.IP); //вернет 0.0.0.0
ShowMessage(ABinding.PeerIP);
;-)
Dstr (2006-06-10 17:56:00) [2]
> потому что установлено 2 сетевых интерфейса.
Блин!!!Ты гений!!Я забыл что инди врезается куда тока можно,проблема решилась:надо всеголишь свою личность в чате обрабатывать локально.
Тока решение проблемы породило новую проблему(.Ведь я тупо шлю в сообщении ИПшник пользователя,а по етому ИПшнику прога знает кому слать месагу в следующий раз,но если например связаться через удаленку,как я понял фсе подвиснет в еб*нейматери.
Как можно узнать ИП адресата сообщения,класс TIdSocketHandle пишет всегда 0.0.0.0?
procedure TServiseLokNet.GlobalServerUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
begin
ShowMessage(ABinding.IP); //вернет 0.0.0.0
end;
Eraser (2006-06-10 16:15:00) [3]
> Dstr © (10.06.06 15:45)
потому что установлено 2 сетевых интерфейса.