![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опять сокеты.... [D6]
Fenix © (2002-06-21 16:58:00)Всем привет!
На мой предидущий вопрос я так и не получил ответа... Но я чуть-чуть разобрался... У меня потоковый сервер и клиент.
Я посылаю файл серверу. Всё. Вроде послал. Но пока не закроешь программу сервер, файл не сохраняется на диске. Почему? И если сначала закрываешь клиент, то появляется ошибка и ничего не сохраняется. Почему? Может кто-нибудь хоть в этот раз подскажет, что делать...
Всем заранее спасибо!
jasper (2002-06-22 18:38:00) [21]да да я тоже это использую и меня тоже проблема не могу переслать, а у тебя (fenix) пересылает??? мне нужно переслать от сервера к клиенту!
Fenix (2002-06-22 16:42:00) [22]>Malder
ClientSocket: TServerClientWinSocket;
А использую я TClientSocket и TServerSocket,
это синхронная передача данных.
Malder (2002-06-22 15:59:00) [23]Что-то я не понял ничего. Как-то странно ты передаешь файлы. Почитай на этом сайте FAQ - там вроде есть примеры как посылать файлы.
А то вот, что у тебя в коде за ClientSocket.Connected ? Что за ClientSocket ? Это же вроде программа сервер ? Непонятно...
и вообще, какой ты компонент для работы с сокетами используешь ?
Fenix (2002-06-22 09:23:00) [24]>Malder
Вот моя функция принятия файла:
procedure TMyServerThread.ClientExecute;
var MySocket: TWinSocketStream;
myfile: TFileStream;
begin
myfile := TFileStream.Create("received.txt",fmOpenWrite or fmCreate);
MySocket := TWinSocketStream.Create(ClientSocket, 1000);
try
while (not Terminated) and ClientSocket.Connected do begin
If MySocket.WaitForData(1000) then
If myfile.CopyFrom(MySocket,1024) = 0 then break;
end;
finally
MySocket.Free;
ClientSocket.Close;
myfile.Free;
end;
end;
Malder (2002-06-21 21:55:00) [25]ну приведи код сохранения файла. Мы ж не телепаты...
может ты closefile забыл сделат или вроде того...