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

Вниз

ClientSocket получает не полный ответ Help!!!   Найти похожие ветки 

 
alekseyii ©   (2010-10-05 09:56) [0]

Здравствуйте товарищи!!!
У меня проблема нужно постоянно по таймеру получать содержимое фала txt который лежит на сервере.
Я сделал через idHTTP но при обрыве инета error и все не отваливалось, избавился от ошибки через try except но idHttp не продолжал сам работу при подключении.
Я решил сделать все на TClientSocket все хорошо но ответ от серверва приходит не полный, то есть содержимое txt файла приходит чуть больше половины а конца нет.
Помогите товарищи!
Заранее благодарю!


 
Slym ©   (2010-10-05 10:16) [1]

alekseyii ©   (05.10.10 9:56)
продолжал сам работу

а ты его заставлял? показывай как делал


 
alekseyii ©   (2010-10-05 10:21) [2]

procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
begin

StrIn.Text:= form1.ClientSocket1.Socket.ReceiveText;
ReadInContent;
form1.Memo1.Text:="SERVER ->>"+#13#10+StrIn.Text;

end;

StrIn:TStringList;


 
DiamondShark ©   (2010-10-05 10:21) [3]


> но idHttp не продолжал сам работу при подключении.

А как он должен был продолжать? ХТТП так устроен, что если оборвалось, то всё, веники. Надо запрос повторять.


> Я решил сделать все на TClientSocket все хорошо но ответ
> от серверва приходит не полный, то есть содержимое txt файла
> приходит чуть больше половины а конца нет.

Значит, неправильно сделал. К сожалению, подробнее что-либо можно сказать только увидев, как оно сделано.


 
alekseyii ©   (2010-10-05 10:22) [4]

продолжал работу - после переподключения инета продолжал получать данные черз get запрос и обрабатывать полученное


 
DiamondShark ©   (2010-10-05 10:23) [5]


> alekseyii ©   (05.10.10 10:21) [2]

Ты напрасно думал, что весь ответ придёт одним куском.
Читай порциями в цикле.


 
alekseyii ©   (2010-10-05 10:24) [6]

я и коннектил заново при выполнении except, но результата нет
сейчас хочу на ClientSocket Остановиться, только ответ не полный приходит :-(


 
DiamondShark ©   (2010-10-05 10:24) [7]


> alekseyii ©   (05.10.10 10:22) [4]
> продолжал работу - после переподключения инета продолжал
> получать данные черз get запрос и обрабатывать полученное

Надо запрос выполнять заново. ХТТП сервер после обрыва соединения забывает про неудачливого клиента напрочь.


 
alekseyii ©   (2010-10-05 10:25) [8]

DiamondShark
это как?
n:="";
s:=ClientSocket1.socket.ReceiveText;
while s<>"" do
  begin
   n:=n+s;
   s:=ClientSocket.socket.receiveText;
  end;


 
alekseyii ©   (2010-10-05 10:29) [9]

пробывал так, но программа вылетает при обрыве.

procedure LoadMessage;
var
lm_s:string;
lm_i:integer;
begin
try                                
  ChatData.Text:=form1.IdHTTP1.Get(chDat);
except
  begin
   sConnect;
   LoadMessage;
  end;
end;

...

end;


 
Сергей М. ©   (2010-10-05 11:03) [10]


> alekseyii ©   (05.10.10 10:29) [9]


Это ты гениально придумал - бесконечная рекурсия)


 
alekseyii ©   (2010-10-05 11:11) [11]

хех!!
сейчас
изменил

StrIn.Text:=form1.ClientSocket1.Socket.ReceiveText
где StrIn: TStringList;

на
form1.memo1.text:=form1.ClientSocket.Socket.ReceiveText

Показал весь текст от начала до конца
впринципе и ответ не большой
какого тогда типа мне нужна переменная что бы не через memo сделать?


 
Сергей М. ©   (2010-10-05 11:17) [12]


> Показал весь текст от начала до конца


Так звезды расположились)


> какого тогда типа мне нужна переменная что бы не через memo
> сделать?


TStringList


 
alekseyii ©   (2010-10-05 11:19) [13]

MyText:TCaption;

MyText:=form1.ClientSocket.Socket.ReceiveText;

тут весь текст

StrIn.Text:=MyText;

а теперь в StrIn.Text невесь :)

как мне теперь быть люди


 
Сергей М. ©   (2010-10-05 12:39) [14]


> в StrIn.Text невесь


И чего не хватает ?
На основании чего ты вообще утверждаешь что "невесь" ?


 
Dennis I. Komarov ©   (2010-10-05 15:28) [15]

А может про HTTP немного почитать? Что же метод "научного тыка" так популярен. Ведь в заголовке ответа содержится все необходимая информация...


 
alekseyii ©   (2010-10-25 11:21) [16]

Все пробуем Денис! и тыкаем и дергаем если уже в тупике, проблема решена, все по другой схеме протянул

Сергей Я знаю данные которые должна получить программа, на основании этого могу смело говорить что ответ не весь! :)


 
Сергей М. ©   (2010-10-25 22:30) [17]

Я и спрашиваю - ЧЕГО не хватает ?)


 
Похиш   (2010-10-26 00:23) [18]


> MyText:=form1.ClientSocket.Socket.ReceiveText;
>
> тут весь текст


> StrIn.Text:=MyText;
>
> а теперь в StrIn.Text невесь

Хм, пожал плечами и пошёл дальше.


 
Похиш   (2010-10-26 00:23) [19]


> MyText:=form1.ClientSocket.Socket.ReceiveText;
>
> тут весь текст


> StrIn.Text:=MyText;
>
> а теперь в StrIn.Text невесь

Хм, пожал плечами и пошёл дальше.



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

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

Наверх





Память: 0.49 MB
Время: 0.006 c
15-1282397426
Константинов
2010-08-21 17:30
2011.01.16
ремонт принтера


2-1287766980
volkafff
2010-10-22 21:03
2011.01.16
Обращение ко всем записям.


15-1285088261
Empleado
2010-09-21 20:57
2011.01.16
Ошибка при вызове ADsFreeEnumerator


2-1287893500
Beginner2010
2010-10-24 08:11
2011.01.16
TTreeNodes.AddObject


15-1285947386
Дмитрий Тимохов
2010-10-01 19:36
2011.01.16
Создание и запись образов CD из командной строки





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