Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Asynchronous socket error 10061 [D6, Win2k]


VolanD666 ©   (2006-08-16 17:27:00) 

Ставлю ClientSocket и Button. В Button`е пишу:

srcfile:=TFileStream.Create('c:\file.txt', fmOpenRead);
ClientSocket1.Host:='192.168.20.1';
ClientSocket1.Open;
ClientSocket1.Socket.SendStream(srcfile);
ClientSocket1.Close;
srcfile.Free;


В другом приложении пишу в ServerSocket1ClientRead:

var
 l: Integer;
 buf: PChar;
 src: TFileStream;
begin
 l :=Socket.ReceiveLength;
 GetMem(buf,l+1);
 Socket.ReceiveBuf(buf,l);
 src := TFileStream.Create('C:\file.exe',fmOpenReadWrite);
 src.Seek(0,soFromEnd);
 src.WriteBuffer(buf,l);
 src.Free;
 FreeMem(buf);


Но 'Asynchronous socket error 10061' не дает мне радоваться успешной передаче файла. :( Почему?


Сергей М.   (2006-08-17 08:09:00) [1]


> VolanD666   (16.08.06 17:27)


Кр.того метод ReceiveLength() работает не так как ты предполагаешь. Это может привести к записи в файл "мусора".
Посмотри внимательно справку.


Dmitrij_K   (2006-08-16 17:35:00) [2]

Кажется так
ClientSocket1.ClientType := ctBlocking;


Dmitrij_K   (2006-08-16 17:32:00) [3]

Потомучто ClientSocket1 работает в асинхронном режиме
Команда ClientSocket1.Open; не ждет пока откроется соединение, и далее ты пытаешься отсылать данные в некуда

чтобы работало установи ClientSocket1 в длокируюший режим, или Отсылай файл по событию OnWrite


Наверх

Титульная страница Поиск, карта сайта Написать письмо