Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 78

Как передавать/принимать файлы, если в новой версии нет send/receive networkfile?

05.10.2013, 21:16. Показов 2136. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно передавать/принимать файлы, если в новой версии нет send/receive networkfile
Это же можно делать и с помощью функции send/receive networkdata
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2013, 21:16
Ответы с готовыми решениями:

Как передать команду NET SEND?
Звиняйте, только начал на VB... собственно, мне надо передать команду NET SEND * 'ля-ля тополя'

Как из VBA послать сообщение на определённый IP посредством net send?
Подскажите как из VBA послать сообщение на определённый IP посредством net send?

Как передать переменные через http.Send (post запрос)
Здравствуйте уважаемые форумчане! Имеется макрос для передачи данных в php скрипт, сейчас передаются постоянные данные, которые прописаны...

5
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
05.10.2013, 21:59
Цитата Сообщение от Pro_Dave Посмотреть сообщение
Это же можно делать и с помощью функции send/receive networkdata
Сам спросил, сам ответил?
Есть на официальном форуме пример
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Procedure.i ReceiveNetworkFile(ClientID.i, Filename$)
 
  Protected Size.q, Count.i, *Buffer, RcvBytes.q
 
  *Buffer = AllocateMemory(1024, #PB_Memory_NoClear)
  If *Buffer
    RcvBytes = ReceiveNetworkData(ClientID, *Buffer, 1024)
   
    If RcvBytes > 0
      Size = PeekQ(*Buffer)
     
      If Size > 0
       
        RcvBytes - SizeOf(Size)
       
        File = CreateFile(#PB_Any, Filename$)
        If File
          WriteData(File, *Buffer + SizeOf(Size), RcvBytes)
        EndIf
       
        Count = 0     
        While RcvBytes < Size And Count >= 0
          Count = ReceiveNetworkData(ClientID, *Buffer, 1024)
          If Count > 0
            If IsFile(File)
              WriteData(File, *Buffer, Count)
            EndIf
            RcvBytes + Count
          EndIf
        Wend
       
        If IsFile(File)
          If RcvBytes = Size
            Result = #True
          EndIf
          CloseFile(File)
        EndIf
       
      EndIf
     
    EndIf
   
    FreeMemory(*Buffer)
  EndIf 
 
  ProcedureReturn Result
 
EndProcedure
 
 
 
Procedure.i SendNetworkFile(ClientID.i, Filename$)
 
  Protected Result.i, File.i, Size.q, *Buffer
 
  File = ReadFile(#PB_Any, Filename$)
  If File
    Size = Lof(File)
    SizeBuffer = Size + SizeOf(Size)
    *Buffer =  AllocateMemory(SizeBuffer, #PB_Memory_NoClear)
    If *Buffer
      PokeQ(*Buffer, Size)
      If ReadData(File, *Buffer + SizeOf(Size), Size) = Size
        If SendNetworkData(ClientID, *Buffer, SizeBuffer) = SizeBuffer
          Result = #True
        EndIf
      EndIf
    EndIf
    CloseFile(File)
  EndIf
 
  ProcedureReturn Result
 
EndProcedure
1
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 78
05.10.2013, 22:33  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Сам спросил, сам ответил?
ну я пробовал, не получалось)

Добавлено через 6 минут
и еще, маленькие файлы нормально передаются(мб так до 100) более большие просто зависают и все((((
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.10.2013, 07:14
Цитата Сообщение от Pro_Dave Посмотреть сообщение
маленькие файлы нормально передаются
Большой файл всегда можно разбить на несколько частей нужного размера, а на приемной стороне собрать обратно.
1
Эксперт по электронике
6569 / 3196 / 335
Регистрация: 28.10.2011
Сообщений: 12,475
Записей в блоге: 7
06.10.2013, 11:33
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Есть на официальном форуме пример
Такой метод годится только для небольших файлов.
Если файл большого размера, то передающую функцию нужно переделать чтобы передача велась частями.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.10.2013, 13:02
Цитата Сообщение от locm Посмотреть сообщение
то передающую функцию нужно переделать чтобы передача велась частями.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Большой файл всегда можно разбить на несколько частей нужного размера,
А я что посоветовал? Вроде то же самое, и это было до Вашего сообщения часа за четыре
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2013, 13:02
Помогаю со студенческими работами здесь

Как открыть ссылку, находящуюся в ячейке листа Ексель, через send в НТТР запросе?
Форумчане, помогите кто-нибудь! Перерыл все что мог, но бестолку. Макрос открывает адрес страницы сайта, если прописать ссылку в самом...

Как передавать массивы как аргументы в процедуры?
Как передавать массивы как аргументы в процедуры?

API для отправки подобных net send сообщений.
Говорят в VB есть замечательные API которые позволяют отправлять сообщения наподобе net send? Или какнибудь иначе сделать?

Вопрос по myItem.Send через Excel
Каюсь, где то год назад открывал тему, но толком ничем не кончилось. Найти не смог, потому открываю по новой. Чтобы не было обвинений в...

Перехват net send сообщений
Сделал программу на отправку сообщений через net send. А вот как принимать/перехватывать эти сообщения не могу понять. Помогите кто сможет.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru