Форум: "Сети";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизПересылка через сокеты Найти похожие ветки
← →
Олег_Иванов (2007-08-24 08:55) [0]Уважаемые мастера.
Вот работаю пересылкой данных через сокеты, хочу не использовать Stream, а работать через файлы. Как можно увеличить значение указателя на нужное значение и передать новое значение указателя.
Вот недоработанный код:
type
PInfo = ^TInfo;
TInfo = record
Size:Int64;
Title:array[0..255] of char;
Data:Pointer;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
f:file;
Size,Send:Integer;
pf:PInfo;
Buffer:array[0..4095] of Byte;
Count:Integer;
begin
pf:=nil;
Count:=0;
if not OpenDialog1.Execute then Exit;
Edit1.Text:=OpenDialog1.FileName;
AssignFile(f,OpenDialog1.FileName);
if FileExists(OpenDialog1.FileName) then
Reset(f,1)
else
Rewrite(f,1);
Size:=FileSize(f);
try
New(pf);
GetMem(pf.Data,Size);
StrPCopy(pf^.Title,OpenDialog1.FileName);
pf^.Size:=FileSize(f);
BlockRead(f,pf^.Data^,Size);
repeat
Inc(Count);
//Как сделать,чтобы значение указателя перешагнуло на Sizeof(Buffer) единиц
//и SendBuf отправил новое значение Buffer????
// Move(pf^.Data^,Buffer,Sizeof(Buffer));
Send:=ServerSocket1.Socket.Connections[0].SendBuf(Buffer,Sizeof(Buffer));
until
Count = 2;
finally
FreeMem(pf.Data,Size);
Dispose(pf);
CloseFile(f);
end;
end;
← →
umbra © (2007-08-24 09:09) [1]ничего не понял. О каком указателе идет речь?
← →
Leonid Troyanovsky © (2007-08-24 10:28) [2]
> Олег_Иванов (24.08.07 08:55)
> Вот работаю пересылкой данных через сокеты, хочу не использовать
> Stream, а работать через файлы.
Все уже украдено до нас.
См. ftp.
--
Regards, LVT.
← →
tesseract © (2007-08-24 10:44) [3]
> //Как сделать,чтобы значение указателя перешагнуло
> на Sizeof(Buffer) единиц //и SendBuf отправил новое
> значение Buffer????
Зачем ? И почему blockread не в цикле ?.
← →
Сергей М. © (2007-08-24 13:42) [4]
> хочу не использовать Stream, а работать через файлы
Чем не устроил TFileStream или его наследник ?
← →
Олег_Иванов (2007-08-24 14:13) [5]Если пишешь на WinAPI, не хочу использваоть классы, чтобы размер EXE был большим.
← →
Сергей М. © (2007-08-24 14:17) [6]
> Если пишешь на WinAPI, не хочу использваоть классы, чтобы
> размер EXE был большим
Так ведь TServerSocket тоже класс)..
Сам ведь себе противоречишь..
← →
Сергей М. © (2007-08-24 14:32) [7]
> Send:=ServerSocket1.Socket.Connections[0].SendBuf(Buffer,
> Sizeof(Buffer));
И вновь те же грабли - результат send"а никак не анализируется.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c