![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 59
|
![]()
Сразу к делу:
Есть Сервер (TServerSocket) и несколько подключённых к нему клиентов (TClientSockets). Есть 2 массива один у клиента, а другой у сервера.(SSock: array[1..5] of TServerSocket у сервера, СSock: array[1..5] of TServerSocket у клиента). Также есть массив SPort: array[1..10] of integer (Здесь прописаны порты. С 20401 по 20410 ). Код:
1. Сервер посылает команду(Запрос файла. ('*$')). 2. Клиент получает команду и проверяет какой из портов (SPort) в данный момент "свободен". Найдя "свободный" порт он отсылает команду с номером выбранного порта Серверу. 3. Сервер, получив команду с номером порта, проверяет может ли он использовать этот порт, если порт "свободен", Сервер создаёт сокет из массива SSock, задаёт ему нужный порт и запускает его, после чего отсылает команду о готовности Клиенту. 4. Клиент получив эту команду создаёт сокет из массива CSock, задаёт ему нужный порт и подключается к Серверу, после чего начинается передача файла. Массив сокетов нужен для одновременной передачи нескольких файлов. Прошу извинять, если я спросил что-то неразумное, я только начинающий начинать программирование. Помогите с реализацией. Заранее благодарен! ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
зачем изобретать кривое колесо, возьмите TIdFTP
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 18.08.2010
Сообщений: 59
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
нет, ну если задача в том, чтобы научиться программировать сокеты, то конечно лучше продолжать то, что уже есть (хотя я бы советовал отказаться от TServerSocket и TClientSocket и работать с сокетами напрямую, это гораздо проще и понятней).
А если задача в том, чтобы закончить проект в короткие сроки, то жмите F1 на TIdFTP, там всё подробно написано. Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 59
|
![]()
veniside, благодарю вас за совет. После того, как разберусь с поставленной задачей, во всех последующих проектах буду использовать TIdFTP.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> во всех последующих проектах буду использовать TIdFTP
нет, ну это будет тоже перебор ) Есть такой протокол, называется FTP, его придумали незадолго после смерти последненго динозавра. Он придуман именно для передачи файлов между сервером и клиентами. А потом придумали дельфи, а под неё сделали набор компонент для работы с популярными протоколами, называется indy. В него и входит компонент TIdFTP, который поднимает протокол FTP, который, имхо, хорошо подходит под вашу задачу. Но это не значит, что очередную мморпг, голосовой чат или видеоконференцию тоже надо реализовывать на основе TIdFTP )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Многопотоковая передача файлов. С использование TServerSocket&TClientSocket | Corbide | C/C++ Сетевое программирование | 0 | 10.02.2012 17:31 |
TClientSocket и TServerSocket | _-Re@l-_ | Работа с сетью в Delphi | 2 | 29.11.2010 16:22 |
TServerSocket и TClientSocket | grafgrial | Общие вопросы Delphi | 3 | 25.08.2010 15:15 |
Ошибки передачи файлов (TServerSocket -> TClientSocket) | Cold_Night | Работа с сетью в Delphi | 2 | 26.11.2009 17:43 |
TServerSocket, TClientSocket | prod87 | Работа с сетью в Delphi | 7 | 26.10.2009 22:38 |