![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.04.2010
Сообщений: 13
|
![]()
//СЕРВЕР
/----- пропущу начало, пишу то что пытаюсь подробнее разобрать: Procedure TForm1.ServerSocket1ClientRead(Send er: TObject; Socket: TCustomWinSocket); Var fs: TFileStream; Data: TMemoryStream; Begin if Socket.ReceiveText = 's' then Begin fs:=TFileStream.Create(Edit1.Text, fmOpenRead); {OtKpbIT DJIa 4TeHu9} {По ссылке из ЕДИТ1 в потоковую переменную зап открытый файл} Try fs.Position:= 0; {koJIu4ectBo c4uTaHHbIx 6auToB oT Ha4aJIa IIotoka} // начинаем с 0 Socket.SendText('Size:'+IntToStr(fs .Size)+ #0); Socket.SendStream(fs); Finally End; End; End; End. собственно клиент: { Private declarations } fs: TFileStream; Reciving:Boolean; DataSize: integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} Procedure TForm1.Button1Click(Sender: TObject); //понятно)) подключится Begin ClientSocket1.Address:=Edit1.Text; ClientSocket1.Active:=True; End; Procedure TForm1.Button2Click(Sender: TObject); // отключиться Begin ClientSocket1.Active:=False; End; Procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); Begin Socket.SendText('s'); End; Procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); Var s, sl: String; Begin s:= Socket.ReceiveText; if Reciving then Begin fs.Write(s[1],length(s)); if fs.Size=DataSize then Begin fs.Free; Reciving:=False; Application.MessageBox('Ïîçäðàâëÿþ, Ôàèë ïðèíÿò', 'Âíèìàíèå!!!'); End; Exit; End; if copy(s, 1, 5)='Size:' then Begin sl:=copy(s, 6, Pos(#0, s)-6); DataSize:=StrToInt(sl); Delete(s, 1, Pos(#0, s)); Reciving:=True; fs:=TFileStream.Create('output.doc' ,fmCreate); fs.Write(s[1], length(s)); End; End; procedure TForm1.Edit1Change(Sender: TObject); begin end; End. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 21.04.2010
Сообщений: 13
|
![]()
Если не очень сложно, хотелось бы коменты под каждой строкой
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
передачи файлов через сокеты | CHITER | Работа с сетью в Delphi | 5 | 09.07.2010 21:55 |
расшифровать в ASCII потом цифры расшифровать в бинарный код | viorel | Общие вопросы Delphi | 1 | 07.05.2010 14:43 |
расшифровать начальный код API | ассемблер123 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 28.04.2010 21:02 |
qip - передача фалов... | Altera | Софт | 9 | 30.12.2008 18:23 |