Страница 1 из 1

Socket

Добавлено: 12 апр 2005, 15:06
rootpro
Вот код сервера

Код: Выделить всё

var co: integer;
  begin
for co := 0 to Memo1.Lines.Count - 1 do
begin
Socket.SendText(Memo1.Lines[co]);
end;
end;
Всё отлично работает, но есть небольшая прблема: Клиент склеивает в одну строку все полученные строки. Как разделить на отдельные строки как на сервере.

Вот так у клиента

Код: Выделить всё

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;
Я пробовал на сервере поставить переход на след. строку
но не катит. Чё делать-то...

Добавлено: 12 апр 2005, 15:32
Dr.Grizzly
Во первых #13 а во вторых тебе надо принцип переделать, должен быть принцип такой: сервер послал строчку, клиент сказал серверу что принял, у сервера например поднялся флажок, если флаг поднят отправить следующую. и т.д. Если нужен будет текст проги, то попозже, ща мне некогда, дома обкатаю этот вопрос и брошу пример, а так я уже такое делал :) Когда получал список файлов с другого компа

Добавлено: 12 апр 2005, 17:24
rootpro
Если можно?.....#13 поставил - не катит

Добавлено: 12 апр 2005, 18:17
rootpro
Заработало.

Код: Выделить всё

ServerSocket1.Socket.Connections[0].SendText(Memo1.Lines[co] + #13#10);
Больше никак. Насчёт обратной связи - я думаю не стоит перегружать сеть лишними сообщениями, т.к. в моём случае машин довольно много и процесс должен происходить почти одновременно.

Добавлено: 13 апр 2005, 19:40
rootpro
Кто-нить знает, какой максимальный размер может быть передан процедурой SendText и принят..

Добавлено: 20 апр 2005, 09:29
LAngel
Намсимальный размер - 2^31, т.е. 2147483648 символов.

Добавлено: 23 апр 2005, 08:34
rootpro
А как обработать ошибку при подключении(ну если не удалось подключитиься). И поставить задержку на ожидание ответа сервера