Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

передать файлЫ по TCP   Найти похожие ветки 

 
MORA   (2004-07-02 16:18) [0]

нужен код или накрайняк последовательность действий при передаче НЕСКОЛЬКИХ ФАЙЛОВ с помощью компонентов TCPxxx.
Я написал прогу, она передает нормально файлы до 8 Кб, а больше -- передает мусор. Пример брал из делфовых примеров (NetChat).

При передаче я использую вызов TcpClient.SendStream(fs);
При приёме в обработчике OnAccept - ...fs.WriteBuffer(Buffer^, FSize);


 
Digitman ©   (2004-07-02 16:27) [1]


> Я написал .. мусор


бывает


> накрайняк последовательность


"накрайняк" для TCP один :

- устанавливается stream-oriented-коннект с TCP-сервером
- передаются данные (!!!!) ВНЕ зависимости от того, файл это или не файл, НЕСКОЛЬКО их или один-единственный ..

передается содержимое БУФЕРА В ВИРТУАЛЬНОЙ ПАМЯТИ, а не черт-те что под названием ФАЙЛ ... ЧТО в этом буфере и КАК оно туда попало перед передачей - флаг тебе в руки, это элемент творычества, никак явно не привязанный к термину "файл"


 
MORA   (2004-07-02 16:40) [2]

дык я так и поступал. Для одного файла я передаю так:
1. буфер (SendBuf) (или строку (SendLn)), в к-ром(ой) лежит имя файла;
2. буфер (SendBuf), в к-ром лежит размер файла (для того, чтобы понять на принимающей стороне, какой буфер создавать);
3. буфер с собственно файлом.
----------------------
В той демке с чатом строки передавались SendLn, а принимались в цикле с проверкой на непустоту строки ()while s <> "" do...
Мне не нужно при приёме буфера принимать его частями или за чем-то следить? Такое впечатление, что пакеты по дороге теряются или сервер (TCPServer) не успевает их обрабатывать. В каждом OnAccept я создаю поток, разгребающий переданный ему буфер...


 
MORA   (2004-07-02 16:42) [3]

Кстати, я ошибся в первом сообщ.:
при приёме: ClientSocket.ReceiveBuf(Buffer^, FSize);


 
Rouse_ ©   (2004-07-03 12:23) [4]

проще использовать WinSock API а именно TransmitFile именно для этого и предназначенную...



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

Форум: "Сети";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.031 c
8-1086877591
AvI
2004-06-10 18:26
2004.09.05
Media Plaer на API


1-1093110577
Ragazor
2004-08-21 21:49
2004.09.05
Delphi &amp; 1C


9-1084454894
matsic
2004-05-13 17:28
2004.09.05
Статистическая обработка


1-1093025592
shc
2004-08-20 22:13
2004.09.05
Копирование значений в динамический массив


1-1093234634
Fynjy1984
2004-08-23 08:17
2004.09.05
Проблема с разделителем





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский