![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отправка файла через сокеты ! [D6, WinXP]
SeNtiMeL © (2003-02-07 22:10:00)Проблема заключается в том, чтобы отправить нормально файл через СерверСокет клиенту.
Если использовать SendStream, то все работает (Но нельзя на серевере подсчитать кол-во отправленных байтов).
Я сделал такой код :
// Здесь переменная "b" : Pchar;
ms:= TMemoryStream.Create;
ms.LoadFromFile("f:\test.mp3");
ms.Position:= 0;
Socket.SendText(IntToStr(ms.Size) + #0); //Чтобы клиент получил размер входящего файла).
While ms.Position < ms.Size do
begin
if ms.Size-ms.Position < 1024 then
ms.ReadBuffer(b,ms.Size-ms.Position)
else
ms.ReadBuffer(b,1024);
try
ServerSocket1.Socket.Connections[0].SendBuf(b,SizeOf(b));
except
on E: Exception do ShowMessage("ERROR");
end;
end;
ms.Free;
Но у меня вылетает ошибка при передачи... В Отладке в Дельфях выводи окно CPU и много много циФр :)
В чем я допустил ошибку ?
Polevi (2003-02-09 13:28:00) [1]память под b где выделяется
SeNtiMeL (2003-02-08 18:29:00) [2]разве никто не может подсказать ?