Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UDP Чат (Indy), проверить наличие юзера 
:(
    Опции темы
Iuda_iz_Kf
  Дата 17.11.2006, 04:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.10.2006

Репутация: нет
Всего: нет



Привет всем...
Вот написал тут маленькй чат...
Код

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
  var
  StringFormattedStream:TStringStream;
  s:String;
begin

  StringFormattedStream:=TStringStream.Create('');
   StringFormattedStream.CopyFrom(AData,Adata.Size) ;
   Memo1.Lines.Add(StringFormattedStream.DataString);
   Abinding.sendto(ABinding.PeerIP,Abinding.PeerPort,s[1],Length(s));
   StringFormattedStream.Free;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  idudpclient1.Send(edit2.Text+'  :  '+edit1.Text+'     ['+timetostr(time)+']');
  edit1.Text:='';
       timer1.Enabled:=true;
  k:=memo1.Lines.Count;
   timer2.Enabled:=false;
  timer3.Enabled:=false;
  cooltrayicon1.IconIndex:=0;

end;


и тд....

Хочу немного улучшить...
Подскажите пожалуйста, как можно проверить наличие в сети пользователя( В Edit вводим адрес юзера ), и при наличии us:=true;

Заранее благодарен!!!!

PM MAIL   Вверх
drkot
Дата 17.11.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 0
Всего: 8



если ответ придет значит пользователь есть.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Snowy
Дата 17.11.2006, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(Iuda_iz_Kf @  17.11.2006,  04:58 Найти цитируемый пост)
Подскажите пожалуйста, как можно проверить наличие в сети пользователя
Боюсь, что это невозможно smile
Откуда тебе знать - сидит человек за компом или нет?
Можно проверить доступность компьютера по сети (ping)
Или запущен ли в данный момент у него твой чат.
Как проверить, запущен ли чат:
Отправляешь в сеть броадкастом сообщение "хто здесь?"
И все, у кого запущена твоя программа начинают отвечать "я здесь!"
Собираешь эти ответы и строишь список тех, кто в сети.
PM MAIL   Вверх
Sanchezzz
Дата 20.1.2007, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 1
Всего: 60



вот кусок моего кода корявый но работает
Сервер принемает:
Код

procedure TForm1.ServerUDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
var
Data,s,a,NickName:string;
user:string;
i,f:integer;
begin
data:='';
Data:=server.ReceiveString(-1);
try
begin
if copy(Data,1,5)='#Ale#' then begin
NickName:=copy(Data,6,length(Data)-5);
if lb.Items.IndexOf(Nickname)= -1 then
begin
lb.Items.Add(nickname);
i:=lb.Items.Count;
label1.caption:='В чате: '+inttostr(i); //количество узеров
end;end;
begin
if copy(Data,1,5)='#Com#' then begin
user:=copy(data,6,Length(data)-5);
memo1.Lines.Add(user);
end;
end;
end;
finally


на таймер
Client.Send(255.255.255.255,3000,'#Ale#'+Nick); ставь на 10 секунт

на отправку сообщений 
Client.Send(255.255.255.255,3000,'#Com#'+'['timetostr(now)+']'+Nick': '+Edit1.text);



Это сообщение отредактировал(а) Girder - 22.1.2007, 11:27


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0625 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.