Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Передача файла через 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
14-1079961774
RealRascal
2004-03-22 16:22
2004.04.18
Определить габариты текста на форме


14-1080070794
Добрые пчелы
2004-03-23 22:39
2004.04.18
ИМХО, фраза: "Сайту "Мастера Делфи" нужны рекламодатели"


8-1072341789
Вовчик
2003-12-25 11:43
2004.04.18
Помогите отправить звук на выход карты


1-1080930806
hgd
2004-04-02 22:33
2004.04.18
Вопрос про процедуры


7-1076329781
WebErr
2004-02-09 15:29
2004.04.18
Как перегрузить соседний компьютер?