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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чат 
:(
    Опции темы
ring0D
Дата 21.8.2005, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Люди ! Подскажите пожалуйста вот что : я делаю чат на Дельфи. У всех его пользователей модемы и IP адреса непостоянные. Как сделать чтоб при выходе в Memo отображались IP адреса тех кто в онлайне ? Я понимаю что это должен быть какой-нибудь скрипт ? Подскажите.
PM MAIL   Вверх
_hunter
Дата 22.8.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



пир выходе откуда? и в чем проблема? -- независимо от динамичности IP у клиента будет. в момент подключения к серверу сервер этот IP узнает...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Плаха
Дата 22.8.2005, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.11.2004
Где: МО п. Киевский

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



по конкретней плиз. как происходить связь ?
--------------------
Принимай то что есть и устраивайся как хочеш
PM MAIL ICQ   Вверх
ring0D
Дата 30.8.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как запускаешь прогу, прога должна связаться со скриптом что ли ? как я узнаю IP адреса всех у кого моя прога ?
PM MAIL   Вверх
Плаха
Дата 30.8.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 10.11.2004
Где: МО п. Киевский

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



какие компоненты используеш?
--------------------
Принимай то что есть и устраивайся как хочеш
PM MAIL ICQ   Вверх
Bibimij
Дата 30.8.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



На событие OnShow формы, где располагаются компонеты для работы с протоколом(например, UDP с вклади Indy) пишешь:
Код


procedure TForm1.FormShow(Sender: TObject);
begin
  IdUDPClient1.Host:=255.255.255.255;{т.е. все адреса}
  IdUDPClient1.Send('e'+getip+' '+nick)
end;


, где 'e'(например, но может быть и другой) - условный индекс входа в чат
getip - функция получения Ip-ишника
nick - ник, вводимый в предыдущем окне, например.
Функция getip:

Код

Function TForm1.getip:string;
type
  TaPInAddr = Array[0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: Array[0..63] of Char;
  GInitData: TWSAData;
begin
  WSAStartup($101, GInitData);
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(buffer);
  if phe = nil then Exit;
  pPtr := PaPInAddr(phe^.h_addr_list);
  result:=inet_ntoa(pptr^[0]^);
  WSACleanup  
end;


После этого надо считать сообщение. Делается это так:

Код

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  St: TStringStream;
  ipishnik,remotenick: String;
begin
 St := TStringStream.Create('');
 St.CopyFrom(AData, AData.Size);
 if St.DataString[1]='e' then begin
  ipishnik:=strtoint(copy(st.DataString,2,pos(' ',st.DataString)-2));
  remotenick:=copy(St.DataString,pos(' ',st.DataString)+1,length(St.DataString))
 end;
 st.free
end;


В ipishnik - хранится Ip-ишник, а remoteniсk - ник вошедшего пользователя.
И незабудь в общем uses'е прописать winsock!
Ферштейн?

Это сообщение отредактировал(а) Bibimij - 30.8.2005, 19:06
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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