Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Вниз

почему не передаются файлы?   Найти похожие ветки 

 
cvv   (2003-06-30 15:41) [0]

почему не передаются файлы? где я не прав? передавать файлы
необходимо именно на IdUDPClient/IdUDPServer. может кто кинет
код как это сделать?
(IdUDPClient.Host = 127.0.0.1, IdUDPClient.ReceiveTimeOut = 2000)
Причем если IdUDPServer1.ThreadedEvent = False, то прога вешается
и закрыть ее обычным образом невозможно. спасибо.

передача:
procedure TForm1.Button1Click(Sender: TObject);
var
FSrc: TFileStream;
begin
if OpenDialog1.Execute then begin
FSrc := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
{пусть размер файла <= 8192 }
IdUDPClient1.SendBuffer(FSrc, FSrc.Size);
FSrc.Free;
end; {if}
end;

прием:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
BufDst: TMemoryStream;
begin
BufDst := TMemoryStream.Create;
BufDst.SetSize(8192);
{функция IdUDPServer1.ReceiveBuffer постоянно возвращает 0.
Почему ничего не получаю?}
if IdUDPServer1.ReceiveBuffer(BufDst, BufDst.Size) > 0 then
( "D:\temp.tmp") почему не передаются файлы? где я не прав? передавать файлы
необходимо именно на IdUDPClient/IdUDPServer. может кто кинет
код как это сделать?
(IdUDPClient.Host = 127.0.0.1, IdUDPClient.ReceiveTimeOut = 2000)
Причем если IdUDPServer1.ThreadedEvent = False, то прога вешается
и закрыть ее обычным образом невозможно. спасибо.

передача:
procedure TForm1.Button1Click(Sender: TObject);
var
FSrc: TFileStream;
begin
if OpenDialog1.Execute then begin
FSrc := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
{пусть размер файла <= 8192 }
IdUDPClient1.SendBuffer(FSrc, FSrc.Size);
FSrc.Free;
end; {if}
end;

прием:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
BufDst: TMemoryStream;
begin
BufDst := TMemoryStream.Create;
BufDst.SetSize(8192);
{функция IdUDPServer1.ReceiveBuffer постоянно возвращает 0.
Почему ничего не получаю?}
if IdUDPServer1.ReceiveBuffer(BufDst, BufDst.Size) > 0 then
BufDst.SaveToFile("D:\temp.tmp");
BufDst.Free;
end;


 
jel   (2003-06-30 16:52) [1]

IdUDPClient1.SendBuffer( FSrc, FSrc.Size);
( BufDst, BufDst.Size) IdUDPClient1.SendBuffer( FSrc, FSrc.Size);

Это указатель на экземпляр потока, а не данные.
Если уж передавать то сам файл. То есть читать из потока в буфер и отправлять в сеть.
С приемом - то же самое, хорошо еще что не AV получаешь.

> IdUDPServer1.ReceiveBuffer(BufDst, BufDst.Size)

Вдумайся в эту строку.


 
cvv   (2003-07-01 12:27) [2]

спасибо.



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

Форум: "Сети";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.018 c
1-10674
iNew
2003-08-21 05:35
2003.09.04
Вот сделал копирование файлов в отдельном потоке. Оцените.


1-10723
BuTyc
2003-08-25 10:17
2003.09.04
Результат работы некоторых диалогбоксов записать в ini файл.


1-10819
BlackTiger
2003-08-21 13:05
2003.09.04
Помогите побороть Automation-сервер! Очень нужно!


1-10792
otido
2003-08-21 18:12
2003.09.04
CAPI и перехват входящего звонка


14-10924
DOR
2003-08-16 11:46
2003.09.04
Вот ...у меня есть на сайте форма(для текста) - я знаю как она на





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский