Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Опять проблемы с сокетами...   Найти похожие ветки 

 
Fenix   (2002-06-20 16:48) [0]

Привет всем!
У меня тут у программы-получателя появляется
ошибка(error read stream - или что-то в этом духе) на строчке if myfile.CopyFrom(MySocket,4) = 0 then break;
Помогите найти ошибку, плиз!!!!
Вот код отправки:

procedure TForm1.SendFile(filename: string);
var
src: TFileStream;
MySocket: TWinSocketStream;
begin
MySocket := TWinSocketStream.Create(ClientSocket1.Socket,20000);
src := TFileStream.Create(filename,fmOpenRead);
MySocket.CopyFrom(src,src.Size);
src.Free;
MySocket.Free;
end;


А вот код получения:

procedure TMyServerThread.ClientExecute;
var MySocket: TWinSocketStream;
myfile: TFileStream;
begin
// открываем файл, в который будем записывать полученные данные
myfile := TFileStream.Create("received.txt",fmOpenWrite or fmCreate);
// создаем поток для работы с сокетом
// и задаем таймаут 20 сек.
MySocket := TWinSocketStream.Create(ClientSocket, 20000);
// блок защиты от сбоев try..finally
try
// пока соединение не прервано
while (not Terminated) and ClientSocket.Connected do begin
// ждем данных из сокета
if MySocket.WaitForData(20000) then begin
// если из потока MySocket (сокет) в поток dest (файл)
// скопировано 0 байт, то выходим из цикла while
if myfile.CopyFrom(MySocket,4) = 0 then break;
end;
end;
finally
// закрываем поток сокета
MySocket.Free;
// закрываем сокет-соединение
ClientSocket.Close;
// закрываем файл
myfile.Free;
end;
end;

procedure TForm1.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread := TMyServerThread.Create(False,ClientSocket);
end;


 
Fenix   (2002-06-20 18:59) [1]

Ну блин помогите же кто-нибудь!



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

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
3-95693
AlexE
2002-08-08 15:23
2002.08.29
Как через SQL-запрос передать в БД символы


3-95662
sergey32
2002-08-07 17:48
2002.08.29
Не работают хранимые процедуры


1-95897
^Sanya
2002-08-16 18:44
2002.08.29
Напомните плиз....


1-95783
Nazareth
2002-08-19 12:30
2002.08.29
Оператор is


3-95711
Alameyda
2002-08-07 15:33
2002.08.29
По IB6. С процедуры получить доступ к таблице в другом GDB.