|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.10.2016, 21:01 | #1 |
Пользователь
Регистрация: 04.10.2016
Сообщений: 76
|
Передать файл по сети в делфи.
var
Form16: TForm16; mm:TMemoryStream; код отправить: var m:TMemoryStream; begin m:=TMemoryStream.Create; m.LoadFromFile('Project7.exe'); m.Position:=0; Edit1.Text:=IntToStr(m.Size); ClientSocket1.Socket.SendStream(m); end; принять: s:=Socket.ReceiveText; mm.Write(s[1],Length(s)); if mm.Size=StrToInt(Edit1.Text) then mm.SaveToFile('23423432.exe'); Я очень простой пример перессылки файла. Пользуюсь ClientSocket1 и ServerSocket1. Клиент и сервер в 1 приложении. Я пока просто разбераюсь. Файл приходит, размер совпадает, но он порченый. Как исправить? |
04.10.2016, 22:03 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Передавать размер данных или признак конца данных. И прием сделайте в цикле, так как во время передачи ОС разобьет ваши данные на произвольные порции, а собрать на приемной стороне забудет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
05.10.2016, 15:42 | #3 |
Пользователь
Регистрация: 04.10.2016
Сообщений: 76
|
я же вот проверяю
if mm.Size=StrToInt(Edit1.Text) then mm.SaveToFile('23423432.exe'); Я это делаю в 1 приложение пока что |
05.10.2016, 17:51 | #4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
ReceiveText - получает текст, а передаёте вы бинарные файлы конечно у вас портятся данные.
Используйте подобный код: Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
05.10.2016, 18:27 | #5 |
Пользователь
Регистрация: 04.10.2016
Сообщений: 76
|
Спасибо! Заработало!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передать файл по сети | Janger | Общие вопросы Delphi | 2 | 01.09.2014 10:22 |
Передать публичный ключ по сети | gunsoy | C/C++ Сетевое программирование | 1 | 08.04.2014 12:19 |
Возможно ли, передать по сети (в потоке), и не сохраняя в файл (длл), использовать исполняемый код? | alextrof94 | Общие вопросы Delphi | 3 | 30.10.2013 18:33 |
Передать wchar_t* из Си dll в Делфи приложение. | spamer | Общие вопросы C/C++ | 9 | 27.01.2012 01:04 |
Передать статический record по сети | Toland2 | Работа с сетью в Delphi | 0 | 24.10.2011 18:30 |