![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| klyxa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
Народ помогите плз:
я хочу написать что то типа чата для усвоения так сказать изученного. Создал сервер, он принимает сообщения от пользователей Создал "удаленный объект", обозначил в нем метод отправки сообщение серверу. И собственно сам клиент для отправки сообщений Тоесть я могу тока отпралвять сообщения на сервер, а вот как сделать чтобы сервер отправлял новое сообщение всем клиентам...я думаю типа можно создать новый метод типа getNewMess и загнать его в вечный цикл чтоли в каждом клинте, чтобы тот спрашивал сервера на нов. сообщения. но вот как это реализовать я ,к сожалению, не догоняю как. хотябы наведите на мысль если чаво |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Отличная идея, только я бы на таймер повесил или в отдельный поток. getNewMess(int lastReceivedMessageNumber) Что-то типа того: Все сообщения нумеруются. Ты запрашиваешь новые, а в качестве критерия отбора этих новых сообщений ты передаешь номер последнего принятого сообщения. P.S. ИМХО, это все лучше делать через Web-сервис. На .Net в несколько сотен строк будет |
|||
|
||||
| klyxa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
а скажи плз как сие моно в цикл или в таймер загнать, хотябы какой класс тады юзать. просто типа
for(int i > 0; ;i++) { getNewMess(); } это помоему чето не то=) |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Можно в цикле опрашивать сервер, но если по уму делать - есть такие протоколы как UDP и Multicast - рассылка сообщений кому попало (UDP) и выбранным IP-адресам (Multicast). Правда, особо не вдавался как это на .NET реализовано, примеры есть в MSDN в описании класса MulticastOption и UdpClient.
Через remoting будет работать быстрее в десятки раз. И не нужно IIS с ASP.NET ставить и создавать виртуальную директорию.
То самое, только задержку поставь Thread.Sleep(пауза) -------------------- ![]() |
||||
|
|||||
| klyxa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
=) Пасип за помощь всема ;)
Добавлено @ 15:51 а еще тады вопрос: нумерация сообщений, это дело как вапще лучше реализовать? я думаю чето то типа списки или например с помощью функции(explode) как в пхп. Кстэ, а может типа создать массив и посредством индекса выходить на нужный элемент, тобишь сообщение? |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Сообщения живут на сервере, поэтому особой нужды в хитрой их идентификации нет. Сделай статик-переменную типа list<ChatMessage>, где ChatMessage - к примеру структура, содержащая поля Author, Time, MessageStr, IsPrivateMsg, и т.п. -------------------- ![]() |
|||
|
||||
| klyxa |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
вот смари я написал код, который спрашивает номер последнего сообщения, если номера последних сообщений совпадают, то ниче не происходит. а если разные то клиент запрашивает последнее сообщение. но вот если я все это дело загоняю в цикл..то полная жопа извините меня, сервак спокойно "падает" и усе. подскажи чаво делать. вот сорц на всяк случай:
а вот если все это дело в:
то жопа, хелп плз |
||||
|
|||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
||||
|
||||
| klyxa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
блин там на VB. да и ваще не проще сказать в чем ошибка или че поправить. потом че надо я сам сделаю
|
|||
|
||||
| ivashkanet |
|
||||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Что-то мне кажется ты наплодил тучу потоков, а ни один не закрываешь
P.S. klyxa, кстати отличная статья Добавлено @ 14:28
Нет, закрываешь |
||||
|
|||||
| klyxa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
блин, да мнеб сделать чтоб этот код нормально выполнялся и все. а дальше я уже придумаю. главное основу зафигачить
|
|||
|
||||
| klyxa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
народ!как сделать чтобы данный код постоянно выполнялся и сервер не "падал"?
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Если хочешь получить ответ, давай полные исходники сервера и клиента. -------------------- ![]() |
|||
|
||||
| klyxa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
о я додумался загнать "опрос" сервера в отдельный поток и вуаля!=)
ЗЫ спасиб всема |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |