Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.12.2011, 10:30
leonw leonw вне форума
Прохожий
 
Регистрация: 12.01.2007
Сообщения: 23
Репутация: 10
Сообщение при отправки текстового файла есть потеря в байтах

Здравствуйте! почему когда я отправляю файл в нем теряються буквы в нутри? как этого можно избежать?
Код:
IdTCPClient1.Host:='127.0.0.1';
IdTCPClient1.Port:=8080;
IdTCPClient1.Connect();
{IdTCPClient1.WriteLN('1111111111');}
FileStream:=TFileStream.Create('name.txt',fmOpenRead);
IdTCPClient1.WriteStream(FileStream);
IdTCPClient1.Disconnect;
 FileStream.Free;

Код:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
bsSkinMemo1.Lines.Add(AThread.Connection.ReadLn);
MemStream:= TMemoryStream.Create;
AThread.Connection.ReadStream(MemStream);
MemStream.SaveToFile('152.txt');
MemStream.Free;
end;
спасибо!
Ответить с цитированием
  #2  
Старый 29.12.2011, 10:45
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

в смысле из слов буквы выпадают?)
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 29.12.2011 в 13:19.
Ответить с цитированием
  #3  
Старый 29.12.2011, 11:38
leonw leonw вне форума
Прохожий
 
Регистрация: 12.01.2007
Сообщения: 23
Репутация: 10
Печаль пакет

в текстовом документе написал "1000000000000000000000000002" а пришел файл с текстом "000000000000000000000002"
Ответить с цитированием
  #4  
Старый 29.12.2011, 13:23
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    IdTCPServer1: TIdTCPServer;
    IdTCPClient1: TIdTCPClient;
    procedure Button1Click(Sender: TObject);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);

procedure TForm1.Button1Click(Sender: TObject);
var
  AStringStream: TStringStream;
begin
  IdTCPClient1.Connect;
  AStringStream:=TStringStream.Create('Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Sockets, IdTCPConnection, IdTCPClient, IdBaseComponent, IdComponent, IdTCPServer;');
  IdTCPClient1.WriteStream(AStringStream, True, True);
  AStringStream.Free;
  IdTCPClient1.Disconnect;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  AStringStream: TStringStream;
begin
  AStringStream:=TStringStream.Create('');
  AThread.Connection.ReadStream(AStringStream);
  Memo1.Lines.Add(AStringStream.DataString);
  AStringStream.Free;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 29.12.2011, 16:11
Аватар для Amgsys HQ
Amgsys HQ Amgsys HQ вне форума
Начинающий
 
Регистрация: 11.11.2011
Адрес: Загрузочный сектор
Сообщения: 115
Версия Delphi: 7, XE
Репутация: 538
По умолчанию

Используй хеш-сумму (напр. MD5 или CRC32), чтобы перестраховаться.
__________________
Работа пpогpаммиста и шамана имеет очень много общего:
оба боpмочyт непонятные слова, совеpшают непонятные действия и не могyт объяснить, как оно pаботает.
Ответить с цитированием
  #6  
Старый 29.12.2011, 19:42
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

протокол tcp/ip это - «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 29.12.2011, 21:49
Аватар для Amgsys HQ
Amgsys HQ Amgsys HQ вне форума
Начинающий
 
Регистрация: 11.11.2011
Адрес: Загрузочный сектор
Сообщения: 115
Версия Delphi: 7, XE
Репутация: 538
По умолчанию

Цитата:
Сообщение от NumLock
протокол tcp/ip это - «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных.

Сорри, не заметил TCP протокола.
У меня все работает отлично, как часы.
__________________
Работа пpогpаммиста и шамана имеет очень много общего:
оба боpмочyт непонятные слова, совеpшают непонятные действия и не могyт объяснить, как оно pаботает.
Ответить с цитированием
  #8  
Старый 04.01.2012, 12:38
leonw leonw вне форума
Прохожий
 
Регистрация: 12.01.2007
Сообщения: 23
Репутация: 10
Сообщение что то не так

в архиве исходник. я хотел сделать чтобы файл передовался от клиента к серверу (любой файл), ворд ексел, текстовый, чтобы отправил файл 111.док он также сохранился 111.док. но сверяю размер и он отличаеться.
http://zalil.ru/32426172
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:52.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter