Форум: "Начинающим";
Текущий архив: 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