![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача файла через TClient и TServer -Socket [D6, Win2k]
axx © (2004-01-28 16:04:00)Господа дайте совет пожалуйста по поводу 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;
....
Rosik (2004-02-11 23:22:00) [1]Мужики и дамы!
Присоединяюсь к {}{}{}
Киньте ссылочку на работающий примерчик или кода бросьте по пересылке файла на этих компонентах
с учетом направленности форума на Delphi
{}{}{} (2004-02-10 23:28:00) [2]Ребят, так и не могу найти реально работающего примера программы по передаче и приёму файла по сети. Поделитесь, плиз, с ламером.
Буду признателен за исходник на Builder C++.
Verg (2004-01-29 16:13:00) [3]А как ты к ГПРС подключился?
axx (2004-01-29 15:21:00) [4]на Диал апе все нормально , в локалке, и т.д. и т.п. все нормально. А на ГПРС вот такой глюк проявился.
Verg (2004-01-29 15:15:00) [5]На других сетях (лан не лан - неважно) нормально все?
axx (2004-01-29 15:05:00) [6]При fSocketStream.WriteBuffer
Ексепшин происходит если размер буфера хотябы 4096.
На 1024 идет но нужно подтверждение иначе при посылке второго кусока 1024 тоже происходит ексепшин.
Verg (2004-01-29 14:48:00) [7]И что, говоришь происходит, когда без подтвержения?:
fSocketStream.CopyFrom(Ms, 0);
axx (2004-01-29 07:48:00) [8]2 каналов на аплоуд, 5 на доунлоуд, класс 8.
Reindeer Moss Eater (2004-01-28 17:16:00) [9]Какого класса твой GPRS?
Сколько каналов на аплоад, сколько на даунлоад?
Digitman (2004-01-28 17:06:00) [10]я так и не понял, причем здесь GPRS ?
axx (2004-01-28 17:00:00) [11]Вобщем сервак на выделенки сидит а клиент на ГПРС'е. В лан все четко. А вот с ГПРС сложнее.
axx (2004-01-28 16:58:00) [12]Все это по ГРПС идет. А ГПРС у нас в городе дикий.
Reindeer Moss Eater (2004-01-28 16:57:00) [13]Такая особенность (медленное подтверждение доставки) проявляется и в LAN и в GPRS или только в GPRS?
Если только в GPRS, то какого он у тебя класса?
Digitman (2004-01-28 16:55:00) [14]
> по поводу GPRS
иде здесь вообще GPRSом пахнет ?
axx (2004-01-28 16:39:00) [15]fSocketStream: TWinSocketStream;
Reindeer Moss Eater (2004-01-28 16:38:00) [16]Передача файла через TClient и TServer -Socket [D6, Win2k]
Про какой именно класс с методом WriteBufferидет речь?
axx (2004-01-28 16:27:00) [17]Из приведенного выше куска кода убираем отжидание и прием 1 байта, вешаем в цикл прогресс и получаем -> при отправке прогресс доходит до 100 % моментально. А приемщик получает первые 1024 и все.
Reindeer Moss Eater (2004-01-28 16:19:00) [18]Если я убираю подтверждение то отправитель мне говорит что все отправлено причем махом
Где и как именно он тебе якобы про это говорит?
axx (2004-01-28 16:14:00) [19]и еще по хелпам я понял что WriteBuffer(x,1024) отошлет именно 1024 или вызовет Ексепшин но этого я не заметил . Может быть конечно так смотрел , что не заметил
axx (2004-01-28 16:10:00) [20]Я сам так думал. Если я убираю подтверждение то отправитель мне говорит что все отправлено причем махом . А приемщик ничего не получает