Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Instant Messanger. Проблема при отправке сообщения, Проблема при отправке сообщения в IM 
:(
    Опции темы
Michele
Дата 12.2.2008, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пишу сейчас Instant Messanger на сокетах с собственным сервером, который связан с БД пользователей. Сервер реализован как консольное приложение + отдельно реализована клиентская часть. На каждого подключенного клиента создается отдельный поток, все потоки содержатся в List<ProtocolService>. ProtocolService - Класс в серверной части, обеспечивающий работу и обслуживание одного подключённого клиента. При отправке сообщения от одного клиента другому на данном этапе разработки smile, оно доходит до севера, сохраняется там и по запросу другой клиент получает его, проблема возникает при мгновенной отправке сообщения, когда оно получено сервером. 

В классе IMServer реализован серверный поток обслуживания новых клиентов. При подключении нового клиента для него создается новый класс ProtocolService, в котором реализован поток обслуживания данного подключенного клиента.
В buff содержится набор данных от клиента в виде потока байт, первый байт которого содержит информацию о типе запроса или данных (на аворизацию, загрузку контакт листа.. а также отправку сообщения)

switch ((Protocol.ProtocolCommands)buff[0])
{
case Protocol.ProtocolCommands.ToAuthenticate:{}
// Клиент отправляет сообщение другому клиенту через сервер
case Protocol.ProtocolCommands.ToSendMessage:
if (auth != null)
{
IMMessage msg = IMMessage.GetMessageFromBytes(buff, 1);
msgStorage.AddIMMassage(msg);

1) // ? IMServer ss1 = new IMServer();
2) // ? ss1.proc(msg);

}
else
SendStringToClient("You are not authenticated.");

break;

2)- обращение к процедуре отправки сообщения в IMServer
1) - создание нового IMServer

Внутри класса ProtocolService передать сообщение другому клиенту мне кажется невозможно (если вы считаете по-другому, напишите пожалуйста). Мне кажется целесообразнее отправлять сообщения из класса IMServer, но когда мы передаем сообщение из класса ProtocolService в класс IMServer, мы создаем новый класс IMServer, а не возвращаемся в тот, который создал текущий ProtocolService. Как можно обойти этот момент, потому как новый класс пустой и не содержит никакой информации?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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