Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизОтправка файлов через сокеты Найти похожие ветки
← →
Ivolg © (2007-11-26 17:41) [0]Как можно отправить файл через стандартные сокеты Windows ?
Собственно делаю так:
Сервер:
uses
WinSock;
....
var
MS: TMemoryStream;
begin
MS:=TMemoryStream.Create;
MS.LoadFromFile("C:\1.jpg"); (Вес 300кб)
MS.Position:=0;
Send(server_sock, MS.Memory^, MS.Size, 0);
MS.Free;
end;
Клиент:
var
buf: string;
MS: TMemoryStream;
begin
MS:=TMemoryStream.Create;
Recv(client_sock, buf, 307200, 0);
MS.Write(buf, 307200);
MS.SaveToFile("C:\2.jpg");
MS.Free;
end;
После пересылки доходит только часть файла. Может есть другие варианты пересылки ?
← →
tesseract © (2007-11-26 18:01) [1]
> Может есть другие варианты пересылки ?
Например блоками по 1 кбайту.
← →
Ivolg © (2007-11-26 18:50) [2]tesseract © (26.11.07 18:01) [1]
Над этой идеей я уже думал. Мне кажется, что это долговато будет, если файл большого объема, например 20мб.
← →
Сергей М. © (2007-11-27 08:18) [3]
> делаю так
Это что, весь код ?
Где создание и инициализация гнезд ?
> Recv(client_sock, buf, 307200, 0);
Здесь грубейшая ошибка.
← →
Ivolg © (2007-11-28 08:16) [4]Сергей М. © (27.11.07 08:18) [3]
Все есть, я просто привел пример, как я отправляю и получаю данные.
← →
Сергей М. © (2007-11-28 08:29) [5]
> Ivolg © (28.11.07 08:16) [4]
> Все есть
Если режим неблокирующий, то логика приема/передачи, реализованная тобой, неверна.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.05 c