Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

Переслать файл без TfileStream   Найти похожие ветки 

 
Beregin   (2003-05-25 16:13) [0]

Использую TServerSocket и TClientSocket. Необходимо считывать файл по куска (каждый считанный кусок шифровать – но это к делу не относиться) и пересылать каждый кусок на сервер. Поэтому пересылать как файловый поток не могу (или не прав?)
На стороне клиента делаю:

var ln: Integer;
data: PByte;
inFile file;
begin
ln:=512;
AssignFile(inFile, "test.rar");
reset(inFile, 1);
GetMem(data, ln);
while not eof(inFile) do
begin
BlockRead(inFile, data^, 512, ln);
ClientSoket.Socket.SendBuf(data^,ln);
end;
FreeMem(data);
CloseFile(inFile);

End;

На сервере в событие ClientRead ловлю:
var ln: Integer;
buf: PChar;
src : TFileStream;
begin
ln := Socket.ReceiveLength;
GetMem(buf,ln);
Socket.ReceiveBuf(buf^,ln);
src := TFileStream.Create("test.rar",fmOpenReadWrite);
src.Seek(0,soFromEnd);
src.WriteBuffer(buf^,ln);
src.Free;
FreeMem(buf);
end;

Но приходит только первые 30-60 килобайт. Притом каждый раз по разному – и не понятно от чего зависит. И где у меня руки кривые? Помогите люди добрые.


 
Digitman   (2003-05-26 09:18) [1]

1. TClientSoket.ClientType = ctNonBlocking или ctBlocking ?

2. SendBuf() - это функция ! А функция, как известно, возвращает результат. Где анализ результата ее выполнения ?

3. ln := Socket.ReceiveLength;
А если в результате выполнения этой строчки ln = 0 ? Каков тогда смысл дальнейших действий ?

4. Где обработка исключений в теле OnClientRead()

5. Если TClientSoket.ClientType = ctNonBlocking, то - где обработка события OnWrite() ?




Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.007 c
14-100956
Rulja
2003-07-10 08:27
2003.07.31
---|Ветка была без названия|---


3-100575
Nikky
2003-07-07 19:06
2003.07.31
Можно ли поменять значения Case Sensitivity/Insensitivity?


1-100679
Opera
2003-07-18 10:48
2003.07.31
game.ini


1-100735
R4D][
2003-07-18 16:53
2003.07.31
горизонтальная прокрутка в ListBox e


1-100730
Alex_vc
2003-07-19 12:33
2003.07.31
Работа с Excel..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский