Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2023, 21:47   #1
Alex711
Пользователь
 
Регистрация: 21.09.2018
Сообщений: 99
По умолчанию TCP

Здравствуйте, пытаюсь передать строку по TCP, клиент на телефоне, программы написана на B4A, код отправки:
Код:
Sub sock_Connected (Successful As Boolean)
	If Successful Then 
		ModuleConnected = True
		AStreams.Initialize(sock.InputStream, sock.OutputStream, "AStreams")
		If CommandBuff = "" Then
			AStreams.Write("00".GetBytes("ASCII"))
		Else
			AStreams.Write(CommandBuff.GetBytes("ASCII"))
			CommandBuff = ""
		End If
	Else
		SetModuleOffline
	End If
End Sub
Получаю на компе:
Код:
procedure TForm1.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);                   
begin
  ClientSocket.Sendln(ChAll); //отправка строки вида: 11100111 клиенту при его подключению
  Memo1.Lines.add(ClientSocket.Receiveln()); //получение строки от клиента
end;
Всё работает, получаю в Memo строку вида: 00 (или 11, 12, 21... при непустой переменной CommandBuff на клиенте).
Проблема в том, что от клиента проходят не все команды, в Мемо вижу пропуски:
18
11
12
16

17

23
11
12

14



14
00

Работа клиента B4A на телефоне проверена в работе с другим TCP-сервером, пропусков нет.
Пытался использовать TIdTCPServer:
Код:
AThread.Connection.Writeln(ChAll);
  sName := AThread.Connection.ReadLn;
  ListBox1.Items.Add(sName);
Клиент подключается, получаю от сервера строку вида: 11001100, но при оправке клиентом строки (00) в ListBox добавляются пустые строки.
Подскажите пожалуйста в чём могут быть причины?
Alex711 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц