Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема приема ReceiveText с несколькоми клиентами [D7, WinXP]


Radgar ©   (2005-03-20 00:43:00) 

Дело в том, что при передачи несколькоми клиентами сообщений одновременно, сообщения сливаются. Подскажите, пожалуйста, что нужно cделать, чтобы избежать этого.


Zyb   (2005-03-21 10:21:00) [1]

вообще на практике лучше слать не sendtext, а sendbuf, более корректная работа


redlord   (2005-03-20 01:16:00) [2]

то змей
а зачем SendText(s+'|') можно просто SendText(s)
в етом случае каждый клиент получит S и ни байта больше
а вот то что в S гемор творится так ето кодер виноват


Змей   (2005-03-20 01:09:00) [3]

у меня была такая проблема но попробуй вот так рассылать

for i := 0 to ServSocket.Socket.ActiveConnections-1 do
    ServSocket.Socket.Connections[i].SendText(s+'|');
    end;


redlord   (2005-03-20 01:00:00) [4]

(при передачи несколькоми клиентами сообщений одновременно)
значит разговор о сервере. но на сервере для каждого клиента свой сокет и они не могут там склеится


Змей   (2005-03-20 00:54:00) [5]

на этом сайте есть статья писал VID или Snap это один чел :)она заключается как раз в том чтобы склеивать а потом делить пакеты.
а вообще можно берешь строку посылаешь и добавляешь какой нибудь символ разделитель
потом при приеме разделяешь

пример
сервSocket.sendsocket('Vasya'+'|'+'Masha'+'|'+'ушли в лес по хрибы :)')
принимаешь реад:
s:=receivetext
edit1.text:=copy(s,1,pos('|',s)-1)//вот до этого символ ты вставляешь если единицу убрать то он тоже будет вставляться
потом удаляем все до него и его тоже
delete(s,1,pos('|',s));
и можно дальше edit2.text:=copy(s,1,pos('|',s)-1) тут будет уже Маша а в 1-ом как догадался Васька ;)
надеюсь что тебе это поможет
но это примитивно!
зато просто


Наверх

Титульная страница Поиск, карта сайта Написать письмо