Ftp-клиент
while(1) // В цикле - отправляю - получаю
{
gets(szMessage); // Беру команду с консоли
strcat(szMessage, "\n"); // Добавляю <CRLF>
ret = send(sClient, szMessage, strlen(szMessage), 0); // Посылаю
printf("%d bytes\n", ret); // Пишу сколько байт отправилось
ret = recv(sClient, szBuffer, DEFAULT_BUFFER, 0); // Получаю ответ
szBuffer[ret] = '\0';
printf("%s", szBuffer); // Пишу сколько байт ответило.
}
по идее, после коннекта я пишу: USER Anonymous<ENTER>
все должно уйти на сервер, и придти ответ. Но его нету...
Пытаюсь с консоли зайти на FTP. Создаю сокет, коннекчусь нормально, получаю, как и положено от сервера "202...". И все... больше ничего на него не проходит, может и проходит но ответа нет. :(
while(1) // В цикле - отправляю - получаю
{
gets(szMessage); // Беру команду с консоли
strcat(szMessage, "\n"); // Добавляю <CRLF>
ret = send(sClient, szMessage, strlen(szMessage), 0); // Посылаю
printf("%d bytes\n", ret); // Пишу сколько байт отправилось
ret = recv(sClient, szBuffer, DEFAULT_BUFFER, 0); // Получаю ответ
szBuffer[ret] = '\0';
printf("%s", szBuffer); // Пишу сколько байт ответило.
}
по идее, после коннекта я пишу: USER Anonymous<ENTER>
все должно уйти на сервер, и придти ответ. Но его нету...
поставь какой нибудь тсп логер чтобы понять что там вообще творится.. , так на первый взгляд вроде все ок.. и вместо DEFAULT_BUFFER тоже попробуй sizeof; Это должно помочь: http://kiron56.dtn.ru/texts/trojan.htm
Та проблема решилась. Но теперь другая проблема.
Как мне выбирать порт для команды PORT?
А то зайти могу на сервер, а дальше ничего делать не могу. Даже список файлов посмотреть.
Все оки... все дело было в той самой последовательности. надо было добавить '\r\n'.
Та проблема решилась. Но теперь другая проблема.
Как мне выбирать порт для команды PORT?
А то зайти могу на сервер, а дальше ничего делать не могу. Даже список файлов посмотреть.
не понял он уже у тебя 21 или я че то недоганяю. а вообще та ссылка что выши там все сделано через свой порт.. , короче гляи..
не понял он уже у тебя 21 или я че то недоганяю. а вообще та ссылка что выши там все сделано через свой порт.. , короче гляи..
Там все таки немного не то.
Как мне пользоваться одновременно двумя сокетами.
Там все происходит по одному.
А по 21у происходит только обмен сообщениями, типа USER ... PASS ... а потом надо посылать серверу команду PORT в которой говорится к какому порту к клиенту коннектится (т.е. ко мне). По которому приходят все остальное (файлы, список директорий/файлов и т.д.)
Если есть у кого исходники ftp-клиента с комментариями. Поделитесь, плз.
Там все таки немного не то.
Как мне пользоваться одновременно двумя сокетами.
Там все происходит по одному.
А по 21у происходит только обмен сообщениями, типа USER ... PASS ... а потом надо посылать серверу команду PORT в которой говорится к какому порту к клиенту коннектится (т.е. ко мне). По которому приходят все остальное (файлы, список директорий/файлов и т.д.)
Если есть у кого исходники ftp-клиента с комментариями. Поделитесь, плз.