1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wzzlyzdn-linux-c-large-file-transfer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

Введение в передачу файлов

Компиляция

  • Выполнить скрипт setup.sh в директории с файлами
    $ chmod +x setup.sh
    $ ./setup.sh
    $ tree
    .
    ├── bin
    │   ├── share_FileTransfer
    │   └── static_FileTransfer
    ├── build
    │   ├── filetransfer.o
    │   ├── md5sum.o
    │   ├── tcp_client.o
    │   ├── tcp_server.o
    │   ├── udp_client.o
    │   ├── udp.o
    │   └── udp_server.o
    ├── doc
    │   ├── Doxyfile
    │   └── readme.md
    ├── include
    │   ├── md5sum.h
    │   ├── server_client.h
    │   ├── server.h
    │   └── udp.h
    ├── lib
    │   ├── libFileTransfer.a
    │   └── libFileTransfer.so
    ├── main.c
    ├── Makefile
    ├── setup.sh
    └── source
        ├── filetransfer.c
        ├── md5sum.c
        ├── tcp_client.c
        ├── tcp_server.c
        ├── udp.c
        ├── udp_client.c
        └── udp_server.c
  • После выполнения скрипта в директории ./bin создаются два исполняемых файла: share_FileTransfer, который ссылается на динамическую библиотеку libFileTransfer.so, и static_FileTransfer, который ссылается на статическую библиотеку libFileTransfer.a

Использование

  • Выполнить static_FileTransfer в текущей директории, этот файл представляет собой программу, объединяющую сервер и клиент

Сервер

# Запуск сервера
$ ./bin/static_FileTransfer
Выберите режим:
Нажмите 1 для выбора TCP
Нажмите 2 для выбора UDP
# Выберите протокол и запустите сервер

Клиент

# Запуск клиента, передайте IP-адрес
$ ./bin/static_FileTransfer 192.168.xxx.xxx
Выберите режим:
Нажмите 1 для выбора TCP
```  Нажмите 2 для выбора UDP
# Выберите протокол и запустите клиент

Передача файлов

  • В режиме TCP введите команды для передачи файлов
    • $FILE_TRANSFER_BREAK$ - прервать передачу файла
    • $FILE_TRANSFER_CONTINUE$ - продолжить передачу файла
    • $FILE_LIST_REQUEST$ - запросить список файлов на сервере
    • $FILE_TRANSFER$ - передать файл
  • Демонстрация
# Сервер: отправка команд
~/TCP_UDP$ . /bin/static_FileTransfer 192. 168. xxx. xxx
# Введите $FILE_LIST_REQUEST$ для запроса списка файлов
$FILE_LIST_REQUEST$
Сервер:
.      .
```.      source    lib    build    setup. sh    Makefile    bin    main. c    include    doc
# Введите в программе $FILE_TRANSFER$ и следуйте подсказкам для ввода имени файла для передачи
$FILE_TRANSFER$
Введите имя файла
main. c
Файл: main. c, прием завершен успешно, время выполнения: 0. 116 секунды
Отправка main. c MD5: fbf29334245779c12c7f6f837dcad78f
Прием main. c MD5: fbf29334245779c12c7f6f837dcad78f
Проверка MD5 завершена успешно!
# Введите в программе $FILE_TRANSFER_BREAK$ для прерывания передачи файла
$FILE_TRANSFER_BREAK$
Передача прервана
Файл: tar. zip, прием прерван, время выполнения: 19. 162 секунды
# Введите в программе $FILE_TRANSFER_CONTINUE$ и следуйте подсказкам для ввода имени файла для продолжения передачи
$FILE_TRANSFER_CONTINUE$
Введите имя файла
tar. zip
Файл: tar. zip, прием завершен успешно, время выполнения: 32. 682 секунды
Отправка tar. zip MD5: 25671bb58a7dba93058b3918ffb2caaa
Прием tar. zip MD5: 25671bb58a7dba93058b3918ffb2caaa
Проверка MD5 завершена успешно!
# Выход, введите quit для выхода из программы
quit

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

На базе платформы Linux C реализовать сокет-коммуникацию для передачи больших файлов (более 1 ГБ), при этом использовать разные каналы для данных и команд. Развернуть Свернуть
C и 3 других языков
LGPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wzzlyzdn-linux-c-large-file-transfer.git
git@api.gitlife.ru:oschina-mirror/wzzlyzdn-linux-c-large-file-transfer.git
oschina-mirror
wzzlyzdn-linux-c-large-file-transfer
wzzlyzdn-linux-c-large-file-transfer
master