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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Многопользовательский сервер, приём файлов, Как реализовать с помощью socket'ов 
:(
    Опции темы
pankerstein
Дата 3.1.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 16.11.2006
Где: г. Белгород

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



Всех с новым годом!

Хочу сделать клиент и сервер (кое что есть уже). Дело в том, что необходимо написать сервер так,чтобы он мог принимать одновременно данные (файлы) от несколькоих клиентов.

Клиенты посылают файлы при помощи sendStream, все работает через clientsocket & serversocket.
Для одного клиента все несложно, а вот с несколькими пользователями наверно придётся попатеть smile 

Версия делфи: 7-я. У меня сейчас и клиент и сервер стоят в режиме stNonBlocking
Мельком видел на форуме,что в таком режиме реализовать работу сервера с нескольими клиентами нельзя, нужен мол stThreadBlocking....

У кого какие идеи?.. помогите кто чем сможет. Заранее спасибо!smile
PM WWW   Вверх
KEM
Дата 3.1.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А что если клиент будет конектится к стандартному порту сервера (6543 например) и получать от него индивидуальный номер порта сервера куда он может законектится для передачи данных. Тогда можно обойтись без блокировок.
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
pankerstein
Дата 3.1.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 16.11.2006
Где: г. Белгород

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



Цитата(KEM @  3.1.2007,  18:32 Найти цитируемый пост)
получать от него индивидуальный номер порта сервера куда он может законектится для передачи данных


Можно сделать и так .. smile но: т.к. один компонент брошенный на форму(serverSocket), работает с одним портом, нужно будет например для 10 одновременно законнектившихся клиентов иметь 10 таких компонентов, дк при етом уже будет 10 открытых портов  smile слишком уж грубовато, нужно отделаться минимальным количеством портов.

У меня мелькает идея о раздаче каждому клиенту не порта, а идентификатора при его подключении который он передаёт всегда со своими данными, а сервер по идентификаторам распределяет пришедшие данные. 
   И тут правда возникает проблемма в том, что у меня данные передаются при помощи sendstream,и как в этот поток что-то вставить (например идентификатор) тожа не знаю  smile 
Или отказаться от стрим и использовать просто sendText???  smile 


PM WWW   Вверх
Snowy
Дата 3.1.2007, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если не разбираешься, то лучше юзай Indy.
Там уже всё за тебя сделано.
PM MAIL   Вверх
pankerstein
Дата 4.1.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 16.11.2006
Где: г. Белгород

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



Цитата(Snowy @  3.1.2007,  23:19 Найти цитируемый пост)
юзай Indy.


Подскажи, какие именно компоненты indy лучше всего подойдут, их много....
И если не сложно кинь толковую ссылу по описанию indy  smile 


я вот тут нашёл http://www.delphiplus.org/downloads/doc/de...n_depth_pdf.zip... этого должно хватить мне кажется, и всё таки...

Это сообщение отредактировал(а) pankerstein - 4.1.2007, 11:58
PM WWW   Вверх
Snowy
Дата 5.1.2007, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



TIdTCPServer - брось его на форму и у тебя готов многопоточный сервер smile
PM MAIL   Вверх
pankerstein
Дата 5.1.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 16.11.2006
Где: г. Белгород

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



Snowy, спасибо... темку однако пока закрывать не буду, как что нить получится выложу smile
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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