![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь Подтвердите свой е-майл
Регистрация: 15.08.2007
Сообщений: 21
|
![]()
В данный момент в чате использую ttcpclient-ttcpserver.
Сервер нужен для рассылки списка/статуса пользователей и т.п., сообщения ч/з него не проходят.. для отправки другому/другим клиенту/клиентам сообщ. польз. выбер его из списка... вот тут то и заковырка! получается что клиент рассылает одно и тоже сообщение выбранным пользователям несколько раз, думается, что проще было б использовать UDP, особенно это касается ПОСЫЛКИ СООБЩЕНИЯ ВСЕМ ПОЛЬЗОВАТЕЛЯМ, но т.к. я с ним не имел дела возникли вопросы: так я понимаю IP задается не полностью, например 85.194.xxx.xxx., а если у пользователя в начале не 85, а например 91, то как быть?.. в принципе - это и есть основная проблема ![]() Последний раз редактировалось RKS; 13.12.2007 в 16:54. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
в каждой сети есть бродкаст адрес, на который тебе и надо посылать сообщение
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#3 |
Пользователь Подтвердите свой е-майл
Регистрация: 15.08.2007
Сообщений: 21
|
![]()
а если ето чат не для локалки, и народ подсоединяется из разных городов, как быть?
|
![]() |
![]() |
![]() |
#4 |
Банхаммер
Участник клуба
Регистрация: 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... так что юзай сервер.. по другому никак нормально работать не будет.... |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
А если не в нутри локальной сети то бродкаст пакеты на 80% не пройдут, что обуславливается политикой современных провайдеров по пропусканию и фильтрации трафика на пограничных маршрутизаторах. В этом случае вам необходимо хранить массив данных о пользователям и при попытке отправить сообщение нескольким ( или всем) пользователям идти по массиву и отправлять каждому
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#6 |
Пользователь Подтвердите свой е-майл
Регистрация: 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. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
Вы так и не поняли ? да большинство провайдеров не пропустят бродкаст на отличную от вашей сеть
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#9 | |
Пользователь Подтвердите свой е-майл
Регистрация: 15.08.2007
Сообщений: 21
|
![]()
Сервак то написан, он выполняет сервысные ф-ии: хранит данные о польз-х и все такое., эт я уже писал.
Цитата:
лана, так я некогда не прийдту к решениюю проблемы... Остановливаюсь на TCP, как я понимаю способ тормозной, но более эфективный чем UDP. или я всовсем тупень, =) . |
|
![]() |
![]() |
![]() |
#10 |
Пользователь Подтвердите свой е-майл
Регистрация: 15.08.2007
Сообщений: 21
|
![]()
и вот еще, когда клиент подкл. к клиенту, м/д ними уст-ся постоянное соединение., я тут подумал, а не лучше ли , соединяться в момент отправки сообщения, и тут же отсоед-ся.
........................ кто нить может примерно описать, как работает ася? а именно: какую роль вып-т сервера, проходят ли мессаги ч/з сервер, пока все. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перехват сообщений от Службы сообщений (Messenger) | SJMS | Win Api | 6 | 17.07.2008 10:26 |
Изменять файл нескольким пользователям одновременно | asale | Microsoft Office Excel | 2 | 20.04.2008 23: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 12:43 |