Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.048 c
2-1196319714
SkyN
2007-11-29 10:01
2007.12.23
Как в DLL использовать функцию экспортируемую exe?


15-1195570715
peregrooz
2007-11-20 17:58
2007.12.23
Производная


15-1195942892
KilkennyCat
2007-11-25 01:21
2007.12.23
Рерихи зажигают.


15-1195932949
lookin
2007-11-24 22:35
2007.12.23
Наконец-то вопрос по теме сайта))


3-1187120241
Anti
2007-08-14 23:37
2007.12.23
Как создать генератор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский