![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при подключении [D6, WinXP]
D@nte$ © (2002-06-01 22:09:00)Пишу на Дельфи нечто вроде чата (типа ICQ, YIM, AIM)... И вот сталкнулся с проблемой, когда серверу надо сообщить, что пользователь на удаленной машине вышел в онлайн. Что я только уже не перепробовал:
1) определение АйПи (не катит, так как часто на компах стоях сетевые карты с постоянным АйПи)
2) пытался производить попытку подключения к какому-нибудь серверу (я брал SMTP, но это не столь важно - просто для проверки), но если комп не в и-нете, то Socket громко кричит об ошибке подключения и почему-то вешает программу...
Вопрос собственно в том, как можно избежать сообщения об ошибке и если ли возможно более легкий случай определения, когда комп выходит в онлайн?
cyborg (2002-06-01 23:41:00) [1]Не понял проблему :-).
То ли жалуешься что не можешь опознать клиент или не можешь послать сообщение клиентам о подключённом клиенте?
IP как раз катит. Делаешь так, когда клиент подключается он на OnConnect посылает серверу свои данные, имя, цвет и т.д. Сервер получает это всё, опознаёт что пришло и вешает эти данные на Socket.Data , а для большей надёжности в событии OnClientConnect генерируешь случайное число и то-же вешаешь его на Socket.Data и не забудь IP сокета тоже туда пометить, по нему ты будешь различатьт например тех, кто сидит на одном IP, да ещё и с одинаковыми именами и пр...
Сообщение об ошибке вырубаются в OnError.