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

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

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


Ответ
 
Опции темы
Старый 13.12.2007, 16:45   #1
RKS
Пользователь Подтвердите свой е-майл
 
Аватар для RKS
 
Регистрация: 15.08.2007
Сообщений: 21
По умолчанию рассылка сообщений всем пользователям в чате, протокол UDP

В данный момент в чате использую ttcpclient-ttcpserver.
Сервер нужен для рассылки списка/статуса пользователей и т.п., сообщения ч/з него не проходят.. для отправки другому/другим клиенту/клиентам сообщ. польз. выбер его из списка... вот тут то и заковырка! получается что клиент рассылает одно и тоже сообщение выбранным пользователям несколько раз, думается, что проще было б использовать UDP, особенно это касается ПОСЫЛКИ СООБЩЕНИЯ ВСЕМ ПОЛЬЗОВАТЕЛЯМ, но т.к. я с ним не имел дела возникли вопросы: так я понимаю IP задается не полностью, например 85.194.xxx.xxx.,
а если у пользователя в начале не 85, а например 91, то как быть?..
в принципе - это и есть основная проблема .

Последний раз редактировалось RKS; 13.12.2007 в 16:54.
RKS вне форума Ответить с цитированием
Старый 13.12.2007, 20:54   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

в каждой сети есть бродкаст адрес, на который тебе и надо посылать сообщение
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 14.12.2007, 03:49   #3
RKS
Пользователь Подтвердите свой е-майл
 
Аватар для RKS
 
Регистрация: 15.08.2007
Сообщений: 21
По умолчанию

а если ето чат не для локалки, и народ подсоединяется из разных городов, как быть?
RKS вне форума Ответить с цитированием
Старый 14.12.2007, 07:54   #4
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

ну тогда тебе надо делать с выделенным сервером или если все таки ты хочешь делать через UDP то вот тебе более гемороидальный способ...
берешь цикл, а точнее 3 цикла и для каждого указываешь с какого ip начинать...
т.е. сматри

for i:=85 to 91 do
for j:=1 to 255 do
for h:=1 ti 255 do
begin
udp.active:=false;
udp.host:=inttostr(i)+'.'+inttostr( j)+'.'+inttosr(h)+'.255';
udp.active:=true;
udp.sendtext('text');
end;

ну это будет сильно грузить проц, долго будут идти собщения, но оно будет работать через udp... так что юзай сервер.. по другому никак нормально работать не будет....
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 14.12.2007, 09:24   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

А если не в нутри локальной сети то бродкаст пакеты на 80% не пройдут, что обуславливается политикой современных провайдеров по пропусканию и фильтрации трафика на пограничных маршрутизаторах. В этом случае вам необходимо хранить массив данных о пользователям и при попытке отправить сообщение нескольким ( или всем) пользователям идти по массиву и отправлять каждому
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 14.12.2007, 09:45   #6
RKS
Пользователь Подтвердите свой е-майл
 
Аватар для RKS
 
Регистрация: 15.08.2007
Сообщений: 21
По умолчанию

Я тут подумал, вот у меня список(массив) IP, прогоняю по нему цикл, по ищу одинаковые первые "октеты" адреса, . например
если более 2 раз встречается 91.147.xxx.xxx, то отсылаю по маске
91.147.255.255, или 78.142.255.255, ну, а если встречается один раз, то и отправляем конкертно ему. ... конечно мне этот способ тож. не нравится, но как по другому осуществить отправку на множество адресов, я не знаю. мне кажется TCP в данном случае не подходит. прийдется слать на каждый адрес...
Конечно можно ограничить количество клиентов =), но ето не дело.

Последний раз редактировалось RKS; 14.12.2007 в 09:48.
RKS вне форума Ответить с цитированием
Старый 14.12.2007, 10:10   #7
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

понимаешь... если собираешься делать общение не в локалке, то сразу думай о том что надо писать сервер... без него никак нормально не обойтись...
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 14.12.2007, 10:45   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Вы так и не поняли ? да большинство провайдеров не пропустят бродкаст на отличную от вашей сеть
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 14.12.2007, 15:19   #9
RKS
Пользователь Подтвердите свой е-майл
 
Аватар для RKS
 
Регистрация: 15.08.2007
Сообщений: 21
По умолчанию

Сервак то написан, он выполняет сервысные ф-ии: хранит данные о польз-х и все такое., эт я уже писал.
Цитата:
Вы так и не поняли ? да большинство провайдеров не пропустят бродкаст на отличную от вашей сеть
а, как то факт, чте, ко мне подключался народ из новосибирска и самары ??! значит пускает =) .............
лана, так я некогда не прийдту к решениюю проблемы...
Остановливаюсь на TCP, как я понимаю способ тормозной, но более эфективный чем UDP. или я всовсем тупень, =) .
RKS вне форума Ответить с цитированием
Старый 14.12.2007, 15:29   #10
RKS
Пользователь Подтвердите свой е-майл
 
Аватар для RKS
 
Регистрация: 15.08.2007
Сообщений: 21
По умолчанию

и вот еще, когда клиент подкл. к клиенту, м/д ними уст-ся постоянное соединение., я тут подумал, а не лучше ли , соединяться в момент отправки сообщения, и тут же отсоед-ся.
........................
кто нить может примерно описать, как работает ася? а именно: какую роль вып-т сервера, проходят ли мессаги ч/з сервер, пока все.
RKS вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват сообщений от Службы сообщений (Messenger) SJMS Win Api 6 17.07.2008 09:26
Изменять файл нескольким пользователям одновременно asale Microsoft Office Excel 2 20.04.2008 22:49
Skroll box в чате. Dj_smart Общие вопросы Delphi 9 08.03.2008 09:34
Смайлы в чате. Teen4jump Общие вопросы Delphi 5 05.03.2008 21:20
Пользователям WebMoney и Яндекс - ??? нужен ли 'патч' Virtson Свободное общение 8 21.05.2007 11:43


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