Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с Socket.SendBuffer 
:(
    Опции темы
BaD_SeCt0R
Дата 9.10.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: нет
Всего: 18



Пожалуйста, подскажите, как правильно работать с TClien/ServerSocket.SendBuffer!!! У меня всякая белиберда отправляется. И как узнать размер отправляемого буфера тоже не знаю. Через Socket.ReceiveLength не выходит. smile 


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Fallen_Angel
Дата 9.10.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Лично я отправляю сообщения примерно так:

Код

procedure TChat.SendClick(Sender: TObject);
var
  s: string;
begin

if (Input.Text ='') or (Input.Text =' ') then
  begin
    Input.Lines.Clear;
    Exit;
  end;
  else begin
    s := '#M';
    s := s + Input.Text;
    ClientSocket1.Socket.SendText(s);
  end;
end;


а принимаю вот так:

Код

procedure TChat.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
  s: String;
begin
  s := Socket.ReceiveText;

  if Copy(s,1,2) = '#M' then begin
    Delete(s,1,2);
    //Дальше пишешь код, куда будешь выводить полученный текст, например:
    Main.Lines.Add(s);
  end;
end;


есстественно, нужно в сервере добавить

Код

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  s: string;
  i: Integer;
begin
{сохраняем в s присланную нам строку}
    s := Socket.ReceiveText;
    if Copy(s,1,2) = '#M' then begin
     for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
      ServerSocket1.Socket.Connections[i].SendText(s);
     Exit;
    end;
end;


ну в общем примерно так


Это сообщение отредактировал(а) Fallen_Angel - 9.10.2006, 22:10
PM MAIL ICQ   Вверх
BaD_SeCt0R
Дата 10.10.2006, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: нет
Всего: 18



С текстом-то как раз понятно, а вот если надо отослать или принять какую-либо другую инфу и размером больше строки - вопрос. smile 


--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
Snowy
Дата 10.10.2006, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



сначала передавай длину буфера (4 байта), а только потом сам буфер.
На приёме читай 4 байта, выделяй буфер указанного размера и потом принимай его.

Добавлено @ 09:11 
В смысле - сам отправляй размер буфера и сам принимай его.
За тебя этого делать не будут.
PM MAIL   Вверх
Fallen_Angel
Дата 10.10.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.10.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Смотри тут:

http://forum.vingrad.ru/index.php?showtopi...mp;#entry328425

Готовый пример обмена файлами между клиетом и сервером
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.