|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.11.2015, 22:21 | #1 |
Пользователь
Регистрация: 15.03.2015
Сообщений: 27
|
отправка файлов через non blocking socket
доброго времени суток. пытаюсь реализовать отправку файлов через nonblocking socket
в справке по делфи нашёл код(представлен чуть ниже) и попытался модернизировать свой, но вылетает с ошибкой((( raised exception class EListError with message 'List index out of bounds(0) Код:
трассировка не очень помогает... где допустил косяк? подскажите, пожалуйста! по ходу, не видит он, что соединение активно |
21.11.2015, 22:22 | #2 |
Пользователь
Регистрация: 15.03.2015
Сообщений: 27
|
тут код из справки
Код:
Код:
|
21.11.2015, 22:45 | #3 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Почему именно классика Делфи - старенькие сокеты?
I'm learning to live...
|
||
21.11.2015, 23:25 | #4 | |
Пользователь
Регистрация: 15.03.2015
Сообщений: 27
|
Цитата:
нужно реализовать протокол ftp, дабы понять принцип работы, вручную. использование инди облегчает работу)) |
|
22.11.2015, 00:02 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Т.е. как именно протокол работает. Например я четто тут не вижу открытия порта данных... Может плохо смотрю?
I'm learning to live...
|
|
22.11.2015, 00:42 | #6 | |
Пользователь
Регистрация: 15.03.2015
Сообщений: 27
|
Цитата:
я тут кое-что подсократил, дабы влезло сюда Код:
что-то похожее на то, что вы говорите есть? я тут экспериментировал как мог... Последний раз редактировалось rachina; 22.11.2015 в 01:22. |
|
22.11.2015, 00:43 | #7 |
Пользователь
Регистрация: 15.03.2015
Сообщений: 27
|
|
22.11.2015, 01:53 | #8 |
Пользователь
Регистрация: 15.03.2015
Сообщений: 27
|
вы действительно оказались правы.
Код:
|
22.11.2015, 10:26 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ух... На пальцах то так и не расскажешь...
Теория тебе нужна, причем знать ее нужно на зубок. FTP использует два порта. Первый порт - порт команд. Клиент отсылает серверу строку, которую он распознает как имя команды. Это у тебя есть: Код:
Нужен второй порт, который будет открыт для считывания результата данных, а после закрыт. Он используется такими командами как LIST, RETR, STOR. Именно за счет этого ФТП и умеет передавать данные огромных размеров не путая данные с командами. Мухи от котлет отдельно короче. Схема примерно такая: 1) Открывается порт 2) Посылается команда 3) Клиент ждет ответ на команду попутно считывая данные из второго канала 4) Когда ответ на команду от сервера по каналу команд будет получен, второй канал закрывается, считая что команда выполнена и ответ на нее из второго канала передан. Однако есть два режима открытия второго канала - пассивный и активный. И вот от них уже зависит, как и кто будет открывать порт и какой именно. Посмотри, у тебя есть такая строка: Код:
I'm learning to live...
|
22.11.2015, 16:08 | #10 | ||
Пользователь
Регистрация: 15.03.2015
Сообщений: 27
|
Цитата:
Цитата:
отправил серверу PASV, на что он ответил мне положительно. но до меня что-то пока не доходит всё равно Последний раз редактировалось Stilet; 22.11.2015 в 17:57. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi 7 ClienSocket.Socket.SendText(Edt2), отправка текста на сервер с заданным шрифтом.. | Aristocrat | Работа с сетью в Delphi | 1 | 25.10.2014 10:36 |
ip через socket | xil | C# (си шарп) | 2 | 28.07.2011 19:14 |
Получение и отправка личных сообщений в чате через Socket | darek13 | Работа с сетью в Delphi | 9 | 12.06.2011 06:13 |
Отправка файлов через smtp | BoT_T | Работа с сетью в Delphi | 0 | 24.09.2010 11:53 |
Отправка файлов по условию через Outlook 2003 | Freerider1972 | Microsoft Office Excel | 3 | 27.07.2010 15:27 |