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

Вниз

Передача файла через TClient и TServer -Socket   Найти похожие ветки 

 
axx ©   (2004-01-28 16:04) [0]

Господа дайте совет пожалуйста по поводу GPRS. Делаю следующее режу файл на куски и отправляю первый , жду один байт подтверждения приема, засылаю следующий кусок и т.д..
Проблема в следующем передача идет очень медленно (иногда просто встаёт на минуту) но на фтп который стоит там же где и принимающая софтина я хожу без проблем. Принимающая софтина сделана по тому же принципу только на оборот (Ждет 1 пакет 1024, шлет подтверждения 1 байт).

Где грабли ??? Может у меня с логикой тово..... :)))

P:pointer;

MS.Seek(0,soFromBeginning);// Поток с передаваемым файлом
//Режу поток на кусочки по 1024 и передаю
For i:=1 to (MS.Size div 1024) do begin  
    MS.ReadBuffer(P^,1024);
    fSocketStream.WriteBuffer(p^,1024);
    //Жду 1 байт подтверждения прочтению
    if fSocketStream.WaitForData(100000) then begin
         fSocketStream.ReadBuffer(g,1);
    end;
    MS.Seek(i*1024,soFromBeginning);
end;
....


 
Reindeer Moss Eater ©   (2004-01-28 16:09) [1]

TCP сам шлет нужные подтверждения, только этажом ниже.
Зачем еще на прикладном уровне квитированием заниматься?


 
axx ©   (2004-01-28 16:10) [2]

Я сам так думал. Если я убираю подтверждение то отправитель мне говорит что все отправлено причем махом . А приемщик ничего не получает


 
axx ©   (2004-01-28 16:14) [3]

и еще по хелпам я понял что WriteBuffer(x,1024) отошлет именно 1024 или вызовет Ексепшин но этого я не заметил . Может быть конечно так смотрел , что не заметил


 
Reindeer Moss Eater ©   (2004-01-28 16:19) [4]

Если я убираю подтверждение то отправитель мне говорит что все отправлено причем махом

Где и как именно он тебе якобы про это говорит?


 
axx ©   (2004-01-28 16:27) [5]

Из приведенного выше куска кода убираем отжидание и прием 1 байта, вешаем в цикл прогресс и получаем -> при отправке прогресс доходит до 100 % моментально. А приемщик получает первые 1024 и все.


 
Reindeer Moss Eater ©   (2004-01-28 16:38) [6]

Передача файла через TClient и TServer -Socket [D6, Win2k]

Про какой именно класс с методом WriteBuffer идет речь?


 
axx ©   (2004-01-28 16:39) [7]

fSocketStream: TWinSocketStream;


 
Digitman ©   (2004-01-28 16:55) [8]


> по поводу GPRS


иде здесь вообще GPRSом пахнет ?


 
Reindeer Moss Eater ©   (2004-01-28 16:57) [9]

Такая особенность (медленное подтверждение доставки) проявляется и в LAN и в GPRS или только в GPRS?

Если только в GPRS, то какого он у тебя класса?


 
axx ©   (2004-01-28 16:58) [10]

Все это по ГРПС идет. А ГПРС у нас в городе дикий.


 
axx ©   (2004-01-28 17:00) [11]

Вобщем сервак на выделенки сидит а клиент на ГПРС"е. В лан все четко. А вот с ГПРС сложнее.


 
Digitman ©   (2004-01-28 17:06) [12]

я так и не понял, причем  здесь GPRS ?


 
Reindeer Moss Eater ©   (2004-01-28 17:16) [13]

Какого класса твой GPRS?
Сколько каналов на аплоад, сколько на даунлоад?


 
axx ©   (2004-01-29 07:48) [14]

2 каналов на аплоуд, 5 на доунлоуд, класс 8.


 
Verg ©   (2004-01-29 14:48) [15]

И что, говоришь происходит, когда без подтвержения?:

fSocketStream.CopyFrom(Ms, 0);


 
axx ©   (2004-01-29 15:05) [16]

При fSocketStream.WriteBuffer
Ексепшин происходит если размер буфера хотябы 4096.
На 1024 идет но нужно подтверждение иначе при посылке второго кусока 1024 тоже происходит ексепшин.


 
Verg ©   (2004-01-29 15:15) [17]

На других сетях (лан не лан - неважно) нормально все?


 
axx ©   (2004-01-29 15:21) [18]

на Диал апе все нормально , в локалке, и т.д. и т.п.  все нормально. А на ГПРС вот такой глюк проявился.


 
Verg ©   (2004-01-29 16:13) [19]

А как ты к ГПРС подключился?


 
{}{}{}   (2004-02-10 23:28) [20]

Ребят, так и не могу найти реально работающего примера программы по передаче и приёму файла по сети. Поделитесь, плиз, с ламером.
Буду признателен за исходник на Builder C++.


 
Rosik   (2004-02-11 23:22) [21]

Мужики и дамы!
Присоединяюсь к {}{}{}  
Киньте ссылочку на работающий примерчик или кода бросьте по пересылке файла на этих компонентах
с учетом направленности форума на Delphi



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

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

Наверх




Память: 0.49 MB
Время: 0.03 c
1-1080803727
ORMADA
2004-04-01 11:15
2004.04.18
Variant


3-1079933497
snake1977
2004-03-22 08:31
2004.04.18
Pervasive+Betrive


1-1080715307
nine_inch_nails
2004-03-31 10:41
2004.04.18
Копирование в clipboard


7-1076601858
Slym
2004-02-12 19:04
2004.04.18
Как передать консоли конец цайла (EOF)?


4-1076529309
.Дима
2004-02-11 22:55
2004.04.18
SID хозяина приложения





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