Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2013, 15:51   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос ServerSocket, удалить запись из списка

Есть Сервер и Клиент.
Клиент в событии OnConnect отсылает на сервер команду
Код:
ClientSocket1.Socket.SendText('login или ещё что-либо');
Сервер в событии OnClientRead принимает команду и добавляет клиента в список.
Но как удалить клиента по событию Сервера OnClientDisconnect?
Искать в цикле, но покаким параметрам и это, очевидно, дже не вариант.
Код:
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
begin
end;

Последний раз редактировалось Shouldercannon; 25.01.2013 в 17:42.
Shouldercannon вне форума Ответить с цитированием
Старый 25.01.2013, 18:24   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

в цикле не вариант...
что пишешь? очередной чат? предлагаю блокирующий режим серверного сокета... там все просто и понятно
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 25.01.2013, 21:20   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но покаким параметрам
Если не по IP то при коннекте пусть клиенту присваивается GUID. Он же отправляется клиенту, который каждое сообщение им маркирует - ЭЦП.
При дисконекте GUID поможет узнать, какой из клиентов хочет разорвать связь.
Естесственно нужно держать ассоциативный список GUID=Connestion. Я бы это через TObjectList делал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.01.2013, 22:38   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
в цикле не вариант...
что пишешь? очередной чат? предлагаю блокирующий режим серверного сокета... там все просто и понятно
Точнее переписываю. Можно подробнее.
Shouldercannon вне форума Ответить с цитированием
Старый 26.01.2013, 12:51   #5
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Долго объяснять проекр выложи проще будет
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 26.01.2013, 18:19   #6
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Простейший пример. Запамятовал, клиент сможет отослать данные о себе только если его об этом попросит сервер? По событию Connect у склиента не получается отправить свой ник.
P.S. Отправка осуществляется не по IP-адресу.
Вложения
Тип файла: zip Chat.zip (15.8 Кб, 10 просмотров)

Последний раз редактировалось Shouldercannon; 26.01.2013 в 18:22.
Shouldercannon вне форума Ответить с цитированием
Старый 26.01.2013, 21:25   #7
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Серверу гуй зачем? убрал
сервер в блоке
Вложения
Тип файла: zip Chat.zip (5.8 Кб, 10 просмотров)
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 27.01.2013, 13:58   #8
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
Серверу гуй зачем? убрал
сервер в блоке
А если так? Это уже то, что есть на самом деле, только упрощено. GUI на сервере обязательно должен быть, для того, чтобы видеть полную информацию о пользователях и сам чат, с возможностью удаления сообщений, выполнения действия над пользователями и не более того.
P.S. Заметил, что у вашего способа нет никакой реакции на некорректный выход клиентов (Диспетчер задач, перезагрузка через Reset и т.д.).
Вложения
Тип файла: zip Chat.zip (20.5 Кб, 15 просмотров)

Последний раз редактировалось Shouldercannon; 27.01.2013 в 16:01.
Shouldercannon вне форума Ответить с цитированием
Старый 27.01.2013, 16:00   #9
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Дублекат. Удалите пожалуйста.
Shouldercannon вне форума Ответить с цитированием
Старый 27.01.2013, 20:17   #10
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

И чето за код? Тоже самое что и первый раз... удаление вышедшего из чата не увидел...
Серверу не нужен гуй, гуй это клиент...
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить элементы из списка.PROLOG Mediaplay Помощь студентам 0 11.12.2012 19:43
Удалить повторы из списка mazzahaker Общие вопросы C/C++ 0 21.04.2012 22:34
не могу удалить запись из списка asd-uk Помощь студентам 0 26.04.2010 20:35
Есть ли у IdTCPServer такое свойство как у ServerSocket: ServerSocket.Socket.ActiveConnectio ns? TwiX Работа с сетью в Delphi 3 07.03.2010 14:28
помогите удалить элемент из связанного списка kermit Помощь студентам 5 13.06.2008 10:14