реклама на сайте
подробности

 
 
> Работа с TFTP.
Jenya7
сообщение Sep 19 2017, 09:41
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Запускаю TFTP Server на стороне компьютера.

На стороне прибора создаю TFTP Client и пытаюсь скопировать файл с сервера.
Код
STATUS TFTP_GetFile(char *host_adr, char *targ_file_name, char *dest_file_name)
{
    FILE *file;
    int result;
    
    file = open (dest_file_name, O_RDWR | O_CREAT, 0644);
    
    result = tftpCopy (host_adr, 0, targ_file_name, "get", "ascii", file);
    
    if (result == OK)
        printf("TFTP DATA OK\n");
    else
        printf("TFTP DATA TRANSFER FAIL\n");
    
    return result;
}

//в таске
TFTP_GetFile(server_ip, "C:/Users/General/Desktop/TFTP_DIR/data.txt", "test.txt");

получаю сообщение от сервера
Цитата
Connection received from 10.0.0.10 on port 51398 [19/09 12:22:45.036]
Read request for file <C:/Users/General/Desktop/TFTP_DIR/data.txt>. Mode netascii [19/09 12:22:45.036]
File <C:\Users\General\Desktop\TFTP_DIR\data.txt> : error 123 in system call CreateFile The filename, directory name, or volume label syntax is incorrect. [19/09 12:22:45.036]

В чем может быть проблема? Мне кажется что файл не создается по каким то причинам.
file = open (dest_file_name, O_RDWR | O_CREAT, 0644);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XVR
сообщение Oct 3 2017, 11:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Для начала вы должны поднять у себя tftp сервер. Затем сказать ему (серверу), где у вас лежат файлы для обмена с клиентами. В засисимости от сервера это может быть сделано самыми разными путями. Если сервер напрямую работает с файловой системой, то нужно сказать ему путь до корневой папки, где ему резвится. Если сервер является глубоко embedded приложением и не контактирует с реальной файловой системой (например по причине ее отсуствия), то у него должны быть свои собственные методы по эмуляции файловой системы для клиентов.
У вас что используется в качестве сервера?
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Oct 3 2017, 12:06
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(XVR @ Oct 3 2017, 16:30) *
Для начала вы должны поднять у себя tftp сервер. Затем сказать ему (серверу), где у вас лежат файлы для обмена с клиентами. В засисимости от сервера это может быть сделано самыми разными путями. Если сервер напрямую работает с файловой системой, то нужно сказать ему путь до корневой папки, где ему резвится. Если сервер является глубоко embedded приложением и не контактирует с реальной файловой системой (например по причине ее отсуствия), то у него должны быть свои собственные методы по эмуляции файловой системы для клиентов.
У вас что используется в качестве сервера?

я пользуюсь tftpLib в vxWorks. Там есть tftpInit() но это скорее для клиента а насчет сервера там все невнятно. нигде не смог найти внятного описания.
я создал директорию mkdir("/ram0/TFTP_FILES"); но как связать ее с TFTP?

Сообщение отредактировал Jenya7 - Oct 3 2017, 12:07
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 3 2017, 14:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Jenya7 @ Oct 3 2017, 15:06) *
я пользуюсь tftpLib в vxWorks.
Это библиотека для клиента tftp. Вам нужна tftpdLib (это сервер)
Функция tftpdInit запускает сервер с заданным списком директорий, откуда/куда подсоединившийся клиент сможет обмениваться файлами

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Работа с TFTP.   Sep 19 2017, 09:41
- - Lagman   Если файл с таким именем существует на сервере то ...   Sep 19 2017, 11:01
|- - Jenya7   Цитата(Lagman @ Sep 19 2017, 17:01) Если ...   Sep 19 2017, 14:25
|- - Barcooler   Цитата(Jenya7 @ Sep 19 2017, 17:25) такой...   Sep 19 2017, 20:24
|- - Jenya7   Цитата(Barcooler @ Sep 20 2017, 02:24) Ес...   Sep 20 2017, 06:46
- - gerber   Попробуйте вместо ascii режим binary.   Sep 20 2017, 06:54
|- - Jenya7   Цитата(gerber @ Sep 20 2017, 12:54) Попро...   Sep 20 2017, 07:28
- - Barcooler   Какую программу TFTP сервера используете? Возможно...   Sep 20 2017, 09:15
|- - Jenya7   Цитата(Barcooler @ Sep 20 2017, 15:15) Ка...   Sep 20 2017, 09:29
|- - Barcooler   Цитата(Jenya7 @ Sep 20 2017, 12:29) польз...   Sep 20 2017, 09:54
- - XVR   Попробуйте позвать lseek(file,0,SEEK_SET) перед re...   Sep 20 2017, 10:28
- - Barcooler   Всё?   Sep 21 2017, 20:15
|- - Jenya7   Цитата(Barcooler @ Sep 22 2017, 02:15) Вс...   Sep 24 2017, 12:38
- - Jenya7   Тут выясняется что я должен быть сервер. А как мне...   Oct 3 2017, 08:11
- - XVR   Зачем вам директория в RAM? Зачем вам вообще файло...   Oct 3 2017, 10:00
|- - Jenya7   Цитата(XVR @ Oct 3 2017, 15:00) Зачем вам...   Oct 3 2017, 10:05
- - XVR   Клиент стучится на tftp порт (69) на ваш IP, в зап...   Oct 3 2017, 10:18
|- - Jenya7   Цитата(XVR @ Oct 3 2017, 15:18) Клиент ст...   Oct 3 2017, 10:25
|- - Jenya7   Цитата(XVR @ Oct 3 2017, 19:32) Это библи...   Oct 3 2017, 14:57
- - XVR   Может их вообще нет? Забыли реализовать Подайте с...   Oct 4 2017, 10:13
- - Jenya7   В vxWorks 6.9 они убрали эти функции.   Oct 10 2017, 07:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 02:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01343 секунд с 7
ELECTRONIX ©2004-2016