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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2010, 02:25   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию TCP сервер и несколько клиентов.

Здравствуйте.
Интересен следующий вопрос со стороны принципа работы.
Допустим к серверу подключен один клиент он делает запрос на предоставление ему записей сервер его обрабатывает и подгружает данные из базы допустив dataset например 10 записей и начинает их из датасета передавать по одной. в это время подключается второй пользователь и выполняет такой же запрос и тоже начинает получать записи вопрос в следующем сервер для каждого клиента создает свой поток что произойдет в таком случае он автоматом создаст копии датасета и каждому клиенту будут передаваться его данные или обратится к одному и тому же дата сету и в лучшем случае передаст не те данные
Lokos вне форума Ответить с цитированием
Старый 14.12.2010, 03:14   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы создаете новый датасет на каждого клиента или нет?

сервер вообще не знает что и как вы там делаете, он вам дает сокет и все.(и поток для обработки этого подключения)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.12.2010, 03:50   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

нет не создаю.
То есть нужно делать так при подключении пользователя в событии OnConnect мы создаем ему все то что необходимо ему для работы и все будет норм я правильно понимаю? То есть если у меня подключится 10 пользователей то и динамично мы создаем 10 DatSet'of а по отключению уничтожаем
Lokos вне форума Ответить с цитированием
Старый 14.12.2010, 03:55   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в общем то да.
главное синхронизируйте сокет и датасет, чтоб не путать что удалять
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.12.2010, 04:01   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
в общем то да.
главное синхронизируйте сокет и датасет, чтоб не путать что удалять
а как можно перепутать каждый пользователь имеет свой ип и свой номер этот номер присваивается дата сету и каждый работает со своим. Или не все так просто и придется возится с синхронизацией?
Lokos вне форума Ответить с цитированием
Старый 14.12.2010, 09:42   #6
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Есть компонент который за вас все создает и удаляет.... притом он стандартный... по этому просто обрабатывайте сонект и все.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 15.12.2010, 02:12   #7
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
Есть компонент который за вас все создает и удаляет.... притом он стандартный... по этому просто обрабатывайте сонект и все.
что за компонент такой?
Lokos вне форума Ответить с цитированием
Старый 23.12.2010, 15:49   #8
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

IdSchedulerOfThreadDefault1
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 26.12.2010, 19:48   #9
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Немного не в тему.
Как можно получить количество подключенных пользователей и их ID ?

Все, понял, делаю так:
Код:
var List: TList;
begin
try
List:=IdIRCServer1.Contexts.LockList;
RichEdit1.Lines.Add(IntToStr(List.Count));
IdIRCServer1.Contexts.UnlockList;
except
end;

Последний раз редактировалось ZBEP; 26.12.2010 в 20:20.
ZBEP вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать TCP клиент, TCP сервер ? DreamMaster911 C/C++ Сетевое программирование 1 26.10.2010 15:05
Сервер с кучка клиентов kvantec Помощь студентам 0 14.04.2010 20:51
Один сервер и несколько клиентов: организация передачи файлов evgenidem Работа с сетью в Delphi 0 23.11.2009 11:26
tcp сервер Pall Работа с сетью в Delphi 5 02.12.2008 15:35
Сервер и несколько клиентов Andr Работа с сетью в Delphi 10 17.09.2007 09:24