![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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