• 0
Камышев Александр

TIdTCPClient, ошибка на передаче 1,5 Мб через модем

Вопрос

tcp_client->Socket->Write( data_out, false );

data_out - TMemoryStream размером около 1,5 Мб, если использовать wifi все ок, в OnWork исправно AWorkCount по 96 байт шлет.

Выключаю wifi проверяю интернет соединение - все ок, небольшие массивы по несколько килобайт уходят без проблем.

Впихиваю 1,5 метра - AWorkCount показывает какие-то либо терабайты либо отрицательные значения.

Ошибки нет, тупо висит. Что ему не так то? help

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

0 ответов на этот вопрос

Нет ответов на вопрос

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Рагим
      Добрый день. Решил сегодня сделать некоторые доработки в приложение написанное на XE7 под Андроид и столкнулся со следующей проблемой: приложение не получает информацию через связку TIdTCPClient/TIdTCPServer. До этого все работало.
      Отправляю сообщение с компьютера через TIdTCPClient:
      try     form2.IdTCPClient1.Connect;     form2.IdTCPClient1.IOHandler.WriteLn(ss,enUTF8);     form2.IdTCPClient1.Disconnect;    except      showmessage('Error');      end;     end;//try получаю (вернее не получаю) на телефоне под Андроид:
      procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); begin  l := AContext.Connection.IOHandler.ReadLn(enUTF8);  showmessage(l); end;  
      В чем может быть проблема и как решить?
    • Автор: loony-pants
      Впервые взялся за разработку Клиент-серверного приложения.  Нашёл пример с IdTCPServer и IdTCPClient, попытался начать с реализации  запроса-ответа. При нажатии на кнопку клиент зависает (Как я понял - соединение не происходит). Ip адрес указывал просмотрев с сайта 2ip.ru и тот, что в "сведениях о сетевом подключении" - результат один и тот же - Зависает клиент. Пробовал с IdUDPClient и IdUDPServer - работает, НО только во внутренней сети, а мне необходим глобальный обмен.
       
      Клиент:
      procedure TForm2.LoginButtonClick(Sender: TObject); begin try IdTCPClient1.Host :='127.0.0.1'; /// Менял IP адрес   IdTCPClient1.Port:=55560; IdTCPClient1.Connect; except Memo2.Lines.Add('Не удается соединиться с указанным сервером'); Exit; end; Memo2.Lines.Append(IdTCPClient1.Socket.ReadLn); IdTCPClient1.Disconnect; end; Сервер:
      procedure TForm1.FormCreate(Sender: TObject); begin section1 := TCriticalSection.Create; idTcpServer1.DefaultPort:=55560; idTcpServer1.Active:=true; end; procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); var strText: String; begin strText := AContext.Connection.Socket.ReadLn; AContext.Connection.Socket.WriteLn('Login: ' + strText); section1.Enter; Edit3.Text := AContext.Connection.Socket.Binding.PeerIP; section1.Leave; Memo1.Lines.Add(AContext.Connection.Socket.Binding.PeerIP); AContext.Connection.Disconnect; end;
    • Автор: MikeWuzHere
      Добрый день госопда. Есть одно приложение на плюсах под андроид, получаю данные через сокеты по tcp посредством компоненты от Indy (только tcp сокеты, других вариантов начальство не дает). Проблема состоит в том, что каждый раз, когда идет получение на пример картинки, то вcё зависает и висит во фризе до конца получения данных, весь телефон висит! Можно как то решить эту проблему? Особенно это ужасает когда приложение работает в фоне и пытается выкачать картинку, телефон просто зависает и все, ничего не поделаешь..
    • Автор: MIB
      Столкнулся с засадой: нужно передать с клиента (андроид) на сервер (Win) данные
      TArray_Data = record fText_a: String;   a,b:double; ... end; Ранее всегда использовал стандартные ServerSocket / ClientSocket и соответственно ReceiveBuf / SendBuf, а вот в Инди такое не проходит.
      Подскажите, плз, вариант решения? 
       
    • Автор: ivadimos
      Собственно в IdTCPClient возникает Max line length exceeded при чтении.
      Шаманы в интернетах советуют поменять величину константы IdMaxLineLengthDefault.
      Есть ли другие способы решения?
    • Автор: Martifan
      Доброго времени суток.  Подскажите пожалуйста, как отправить TIdBytes с сервера на клиент используя Indy10 tcpClient/Server и как получить отправленный TIdBytes на стороне клиента. (Рассматривается вариант и по UDP). Заранее спасибо.
    • Автор: Martifan
      Доброго времени суток.  Подскажите пожалуйста, как отправить файл с сервера на клиент используя Indy10 tcpClient/Server и как получить отправленный файл на стороне клиента. (Рассматривается вариант и по UDP). Заранее спасибо.
    • Автор: Рагим
      Доброго времени суток. Написал два приложения, которые работают через wi-fi. Одно выполняет роль сервера (управляющего), другое в количестве 4 штук посылает/получает информацию на/от сервера. Иногда отваливаются клиентские приложения. В чем может быть причина? На "сервере" создаю точку доступа и клиенты подключаются сначала по wi-fi, затем к приложению. Для связи использую компоненты TidTCPClient и TidTCPServer. Что нужно сделать чтобы клиентское приложение не закрывалось само по себе?
    • Автор: Alexey
      Здравствуйте. 
      В приложении android делаю проверку наличия интернет соединения:
      function CheckInternetConnection(Host: string='google.com'; Port: Integer = 80; Timeout: Integer = 5000): Boolean; var TCP: TIdTCPClient; begin TCP := TIdTCPClient.Create(nil); try TCP.Host := Host; TCP.Port := Port; TCP.ConnectTimeout := Timeout; try TCP.Connect; Result := TCP.Connected; except Result := False; end; finally TCP.Free; end; end; В режиме Debug все работает нормально. В режиме Release функция перестает работать на строке:  
      TCP.Connect; В чем проблема?
    • Автор: rareMax
      Добрый день! Возник еще один вопрос по работе с FM3. Нашел на диске заброшенный проект(клиент для чата). Захотелось переписать его под Android. Только проблема заключается вот в чем. При получении текста я раньше писал так:
      fInput:= fClient.Socket.ReadLn(TEncoding.UTF8); Но сейчас видимо что-то изменилось в ИнДи(из-за кроссплатформености полагаю?), и TEncoding.UTF8 нельзя использовать. А без него в неправильной кодировке приходит текст. Кто может, приведите пример, как получить текст с сервера с преобразованием кодировки?
       
      P.S. Ярослав, если я не в том разделе создал тему, просьба переместить ее.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу