![]() |
отправка прием картинки Socket Server&Client Delphi
отправляю:
PHP код:
PHP код:
|
картинка должна передаваться не сразу куском, а по блокам определённого размера...
и думаю стоит поменять s : string; на buf : array [0..1024] of byte; и если учесть что TImage - это штука глючная, то лучше загружай картинку через TBitmap а потом уже рисуй её куданить на форму... ну или на жёсткий сохрани... |
имхо тоже , лучше разбить по байтам , и имхо еще лучше сделать опознавательный байт в начале блока , чтобы пакеты картинки от других фильтровать ...
|
Цитата:
а вообще я делал так.... если передаём с сервера картинку, оповещаем клиента об её ожидании... посылая клиенту сообщение через SendText, 'imgXXXXXXXX' где XXXXXXXX - размер картинки в HEX виде... затем устанавливаем флаг (в клиенте) о приёме оной и занося в какую либо переменную размер картинки RecvImage := True ImageSize := XXXXXXXX далее просто от общего размера, есстественно отнимаем то число, которое показывает размер блока что был принят... ну и всё... вроде... |
это имхо (+ приверженство к hand made )
|
Ещё, если уж потоки - это тру, то имхо (:)) лучше уж использовать TStrtingStream
|
2 Flame
не разбираясь в делфи! >> s:=Socket.ReceiveText; ноль ограниченный режим или чего это за шняга? /// одним словом непохек работать с сокетом на высоком уровне! :cool: |
жесть. читай файл в буфер и просто высылай буфер. а вообще пора забыть эти TServerSocket & TClientSocket, юзай модуль WinSock.
|
не используйте Stream'ы, это от лукавого :) пишите на апи - это хек! а строка под буфер, это нонсенс...
велком ->> http://www.delphikingdom.com/ |
PHP код:
|
| Время: 02:21 |