|
Работа с TFTP. |
|
|
|
Oct 3 2017, 10:05
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(XVR @ Oct 3 2017, 15:00)  Зачем вам директория в RAM? Зачем вам вообще файловая система? TFTP сервер должен принимать и отдавать файлы по имени, а где они будут лежать, и какие имена могут быть - это целиком внутреннее дело самого сервера. Считайте, что у вас все файлы лежат просто списком, но имя файла может содержать символ '/' https://ru.wikipedia.org/wiki/TFTPДа но мне нужно организовать передачу файлов по TFTP между двумя системами. Я должен быть сервером. Клиент должен знать куда стучаться? адрес, порт, путь к файлу? я что не должен у себя это определить? в приведенном примере для NFS создается директория mkdir("/ram0/MFL_FILES"); и она привязывается к NFS nfsExport("/ram0/MFL_FILES" ,555,FALSE,0 ) разве мне не нужно сделать что то подобное?
Сообщение отредактировал Jenya7 - Oct 3 2017, 10:08
|
|
|
|
|
Oct 3 2017, 10:25
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(XVR @ Oct 3 2017, 15:18)  Клиент стучится на tftp порт (69) на ваш IP, в запросе передает имя файла, и вы должны его принять или передать (в зависимости от запроса). Куда физически попадет файл целиком зависит от самого tfpt сервера (того самого, что слушает на 69 порту). У вас файлы на вашей системе физически есть? Если да, то их и передавайте (с теми путями, какие поддерживает ваша файловая система, где файлы живут) Если нет - то какое вообще назначение этого вашего tfpt сервера? Ведь если файлов нет, то и обмениваться нечем  то есть допустим я создаю директорию Код mkdir("/ram0/TFTP_FILES"); клиент может положить туда файл и взять оттуда файл? я не должен конфигурировать у себя ничего?
|
|
|
|
|
Oct 3 2017, 14:57
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(XVR @ Oct 3 2017, 19:32)  Это библиотека для клиента tftp. Вам нужна tftpdLib (это сервер) Функция tftpdInit запускает сервер с заданным списком директорий, откуда/куда подсоединившийся клиент сможет обмениваться файлами О! Вот спасибо! То что нужно. Не получается подключить библиотеку.  Код STATUS TFTP_Setup(int stack_size) { char *dir = "/ram0/TFTP_FILES"; mkdir(dir); tftpdInit(stack_size, 1, " ", FALSE, 1); tftpdDirectoryAdd(dir); return OK; } при компиляции получаю Цитата dld: warning: Undefined symbol 'tftpdDirectoryAdd' in file 'tftp.o' dld: warning: Undefined symbol 'tftpdInit' in file 'tftp.o' dld: error: Undefined symbols found - no output written функции 'tftpdDirectoryAdd и tftpdInit в tftpdLib.h определены как extern . tftpdLib.h откуда то их тянет. но в tftpdLib.h ошибка не генерерируется значит функции присутствуют. почему тогда я получаю ошибку?
Сообщение отредактировал Jenya7 - Oct 4 2017, 09:51
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|