Форум: "Сети";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Внизftp клиент своими руками Найти похожие ветки
← →
newprogrammer (2006-01-28 15:00) [0]всем привет.
народ подскажите почему так происходит :
пытаюсь получить список ресурсов FTP сервера, используя сокеты,
а в ответ от сервера( 8 раз из 10) получаю ошибку о не возможности подключится
к моему серверному сокету(error 425). в качестве серверного сокета высеупает
Tserversocket в блокированном режиме в обравотчике события
(ongetthread) создаю нить прослушки 1* .
запросы FTP серверу отправляю клиентом тоже в блок режиме 2* .
причем нет никакой разницы в одном или в разных проектах расположены клиент и сервер
( описанные ниже)
сам FTP сервер запущен на томже компе что и моя прога
и все ето на ноутбуке
-------------------------------------------------------------
1*
procedure TMyServerThread.ClientExecute;
var MySocket: TWinSocketStream;
s:string;
begin
MySocket := TWinSocketStream.Create(ClientSocket, 20000);
try
while (not Terminated) and ClientSocket.Connected do begin
if MySocket.WaitForData(2000) then begin
if ClientSocket.ReceiveLength=0 then break;
s:=ClientSocket.ReceiveText;
form1.Memo1.Lines.Add("<<- "+s);
end;
end;
finally
MySocket.Free;
ClientSocket.Close;
end;
end;
-----------------------------------
2*
while (not Terminated) and Client.Socket.Connected do
begin
if MySocket.WaitForData(100) then
begin
if client.Socket.ReceiveLength=0 then break;
s:=client.Socket.ReceiveText;
if pos("220",s)>0 then
begin
client.Socket.SendText ("USER Anonymous"+crlf);
inc(step);
end;
if (pos("331",s)>0) and (step=1)then
begin
client.Socket.SendText ("PASS net@net.net"+crlf);
inc(step);
end;
← →
Digitman © (2006-01-30 11:55) [1]
> получаю ошибку о не возможности подключится
> к моему серверному сокету
ты используешь активный FTP-протокол ?
← →
newprogrammer (2006-01-30 18:00) [2]а можно по подробнее чем отличается работа клиента в пасивном и активном режиме ?
в том описании которое есть у меня нет ни каких упоминаний об етом
← →
clickmaker © (2006-01-30 18:02) [3]
> newprogrammer (30.01.06 18:00) [2]
http://forum.five.mhost.ru/kb2/index.php/FTP
← →
newprogrammer (2006-01-30 22:20) [4]выходит что моя прога работала в активном режиме
в предложенной статье написано что клиент говорит в каком режиме работать серверу . а как ето зделать , какой командой сообщить о смене режима ?
← →
newprogrammer (2006-01-30 23:39) [5]да вот ешо
и бязательное ли условие разница в портах на +1
← →
Digitman © (2006-01-31 08:28) [6]
> выходит что моя прога работала в активном режиме
Что, сама по себе ?
← →
newprogrammer (2006-01-31 18:00) [7]нет не сама посебе .
просто на стороне моего клиента, для приема данных, был запущен СЕРВЕРСОКЕТ на кторый коннектился клиент от FTP сервака
и это хорошо видно из постановки вопроса :))
← →
newprogrammer (2006-02-01 00:57) [8]да вот ешо
и бязательное ли условие разница в портах на +1 между моим клиентом
и клиентом FTP сервера который конектится на мой слушающий сокет
← →
Digitman © (2006-02-01 08:38) [9]
> newprogrammer (01.02.06 00:57) [8]
http://www.faqs.org/rfcs/rfc959.html
← →
newprogrammer (2006-02-02 18:56) [10]с отправкой первого запроса на получение содержания корневой папки
все получилось .
тепер другая проблема : при повторном коннекте FTP сервака на мой серверный сокет получаю сообщение (4хх ) тобиш его клиент не смог подключится на мой серверсокет .
при трассировке видно что после получения первой порции данных от FTP
соедимение разрывает FTP server но повторно подключатся на етот же порт не желает
если сразу после приема данных от FTP servera (на етомже соединении ) передать ему несколько байт, причом любых ,то соединение также обрывает
FTP server . но в етом случае происходит следующий коннект при запросе
LIST на следущюю директорию и все вроде работает.
но вет так не должно быть. !
почему не происходит повторный коннект на тодже порт что и был использован при приеме первой партии данных от сервера FTP ?????
← →
Digitman © (2006-02-03 08:40) [11]вероятно, у тебя ошибка в логике использования TServerSocket
← →
Digitman © (2006-02-03 09:43) [12]А чем, собссно, вызвано непреодолимое желание усложнять себе жизнь, реализуя именно активный протокол ? Чем пассивный не устроил ?
← →
newprogrammer (2006-02-03 17:07) [13]может я и не прав
но чтото мне подсказывает что могут возникнуть проблемы при стечении
трех обстоя тельств
1. фаервол
2. кривые руки настройщика FTP сервера
3 . пассивный протокол FTP
тобиш как поведет себя сервак FTP на пассивном протоколе если на томже компе стоит фаервол ?
← →
Digitman © (2006-02-06 10:21) [14]
> как поведет себя сервак FTP на пассивном протоколе если
> на томже компе стоит фаервол ?
Нормально он себя поведет.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c