Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 12.12.2020, 20:19   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,853
Вопрос Передача текста через Buf с помощью Socket

Доброго времени суток!
Передаю текст
Код:
var
  s: String;
  I: Integer;
begin
  if ClientSocket1.Active then
  begin
    s := ETransfer.Text;
    I := Length(s);
    ClientSocket1.Socket.SendBuf(s, SizeOf(I));
  end;
end;
Получаю текст
Код:
var
  s: String;
  I: Integer;
begin
  I := Socket.ReceiveLength;
  SetLength(s, I);
  Socket.ReceiveBuf(s, I);
  EReceiving.Text := s;
end;
Тип сокета stNonBlocking

Делал передачу 12 раз, каждый раз передавая на один символ больше получаю проблему на картинке ниже.
Чем больше текст тем хуже.

Решение
Код:
procedure TFormMain.BSendClick(Sender: TObject);
var
  Bfr: PChar;
begin
  if ClientSocket1.Active then
  begin
    Bfr := PChar(ETransfer.Text);
    ClientSocket1.Socket.SendBuf(Bfr^, Length(ETransfer.Text));
  end;
end;
 
procedure TFormMain.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  s: String;
begin
  SetLength(s, Socket.ReceiveLength);
  SetLength(s, Socket.ReceiveBuf(Pointer(s)^, Length(s)));
  EReceiving.Text := s;
end;
Изображения
Тип файла: png 1.png (40.5 Кб, 15 просмотров)

Последний раз редактировалось Shouldercannon; 13.12.2020 в 11:16.
Shouldercannon вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача Unicode через Socket Shouldercannon Общие вопросы Delphi 4 16.12.2020 21:28
Передача форматированного текста между socket-клиентами с RichEdit`ами. Klaxwork Общие вопросы Delphi 4 18.12.2013 15:45
Передача данных через socket TCP/IP hidalgo C# (си шарп) 1 10.07.2012 18:03
Передача файла по Socket KoBRaAndrey Работа с сетью в Delphi 2 13.11.2009 20:05
Client Server Socket передача информации с помощью потока One.Love Работа с сетью в Delphi 4 15.01.2008 19:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS