`p r o x y сказал(а):Считывать изображение как обычный файл по определенному колличеству байт FileRead.
И передовать (клиент-серверное решение) TCPSend.
Примеров в справке будет достаточно, что бы выполнить задачу.
`p r o x y сказал(а):Хмм, примерно это выглдит так:
1. Клиент-сервеный вариант подразумевает, что клиент - только передает, сервер - только принимает.
Для двухсторонней реализации, необходимо, запускать на каждом ПК и клиент и сервер.
2. Клиентский скрипт считывает содержимое файла, разбивает его на блоки по N-символов/байт, передает серверу:
* посылает команду, что начинается передача файла, название файла, размер файла
* получает ответ готовности приема
* отправляет 1-ый блок данных
* ожидает ответ о приеме
* получает ответ готовности
* отправляет 2-ой блок данных
* ожидает ответ о приеме
* получает ответ готовности
...
* отправляет поледний блок данных
* ожидает ответ о приеме
* получает ответ готовности
* отправляет команду завершения передачи файла
3. В этот момент у сервера уже есть все отправленные блоки файла, которые он сохраняет в хронологическом порядки в файл.
Для верности еще правильно было бы проверять размер итогового файла на совпадение с данными о файле полученными от клиента.
`p r o x y сказал(а):Т.е. как в браузере грузится изображение большого размера?
В этом случае, необходимо "копать" функции _GDIPlus*.
Какая именно, не в курсе, не разирался.
Либо "топорный метод" - при каждом получение пакета, сохранять все пакеты
файла в файл на диске и уже обновлять в окне программы.
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <ScreenCapture.au3>
#include <WinAPI.au3>
;~ Opt('MustDeclareVars', 1)
$hGUI = GUICreate("GDI+", 800, 800)
GUISetState()
While 1
Local $hGUI, $hBMP, $hBitmap, $hGraphic
; Capture upper left corner of screen
$hBMP = _ScreenCapture_Capture ("", 0, 0,-1,-1)
; Initialize GDI+ library
_GDIPlus_Startup ()
; Draw bitmap to GUI
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP ($hBMP)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hGUI)
_GDIPlus_GraphicsDrawImage ($hGraphic, $hBitmap, 0, 0)
; Clean up resources
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_ImageDispose ($hBitmap)
_WinAPI_DeleteObject ($hBMP)
; Shut down GDI+ library
_GDIPlus_ShutDown ()
Sleep(10000)
Until GUIGetMsg() = $hGUI_EVENT_CLOSE
WEnd
qsort сказал(а):Так, а подсказать то, что?.. Если по этому примеру, так, вроде, уже и сам разобрался. Кстати, на глаз, он даже и запуститься не должен, чего-то Do там не проглядывается...
А по теме "передать изображение через TCP" это ж надо еще догадаться, что имеется в виду, поскольку "через TCP" изображения передаются точно таким же образом, как и все другое. Для благородного семейства протоколов TCP все равно, что они там передают, что исполняемый файл, что изображение, что натюрморт, что обнаженная натура - все едино...
Т.е. просто берем в справке все функции начинающиеся на TCP и смотрим, чего с ними можно сделать. Могу сразу сказать, что функций по типу _TCPSendImage() - нету.
Автор темы | Похожие темы | Форум | Ответы | Дата |
---|---|---|---|---|
T | Передача действий между скриптами | Общие вопросы по AutoIt | 6 | |
S | Потоковая передача видео | Общение | 0 | |
Передача значений из одной программы в другую | Общие вопросы по AutoIt | 6 | ||
F | Передача аргумента в Vbs скрипт | Общие вопросы по AutoIt | 2 | |
X | Передача верхнего регистра букв | Разработка ботов | 1 |