![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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 приложении. Я пока просто разбераюсь. Файл приходит, размер совпадает, но он порченый. Как исправить? |
![]() |
![]() |
![]() |
#2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
Передавать размер данных или признак конца данных. И прием сделайте в цикле, так как во время передачи ОС разобьет ваши данные на произвольные порции, а собрать на приемной стороне забудет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.10.2016
Сообщений: 76
|
![]()
я же вот проверяю
if mm.Size=StrToInt(Edit1.Text) then mm.SaveToFile('23423432.exe'); Я это делаю в 1 приложение пока что |
![]() |
![]() |
![]() |
#4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]()
ReceiveText - получает текст, а передаёте вы бинарные файлы конечно у вас портятся данные.
Используйте подобный код: Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
![]() |
![]() |
![]() |
#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 |