none
Рассылка сообщений всем клиентам с помощью синхронных сокетов RRS feed

  • Вопрос

  • Здравствуйте.

    Делаю чат с использованием синхронных сокетов (клиентов от силы 4шт. :) ) но столкнулся с тем, что сообщение, введенное каким-либо из клиентов не рассылается всем остальным. Себе я это представил так: клиент вводит сообщение, отправляет на сервер, а сервер по имеющимся к нему подключениям рассылает это сообщение. В коде это выглядит так:

    Socket handler = listener.Accept();
    . . .
    
    byte[] msg = Encoding.ASCII.GetBytes(data);
    
                        foreach (var address in ipHostInfo.AddressList)
                        {
                            IPEndPoint ep = new IPEndPoint(address,11010);
                            handler.SendTo(msg, ep);
                        }

    На деле получается так, что какое сообщение клиент отослал, такое же и получил обратно. Почему так происходит?

    Код клиента - http://pastebin.com/DWKKr8FD

    Код сервера - http://pastebin.com/cDeKjzz5

    Спасибо.

Ответы

  • Посмотрите на код приведенный в этой статье. Главное отличие в том что вы не сохраняете информацию о подключениях а шлете только тому, кто подключился в данный момент.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Abolmasov Dmitry 22 мая 2012 г. 8:59
    Отвечающий

Все ответы

  • Посмотрите на код приведенный в этой статье. Главное отличие в том что вы не сохраняете информацию о подключениях а шлете только тому, кто подключился в данный момент.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Abolmasov Dmitry 22 мая 2012 г. 8:59
    Отвечающий
  • Segaman ответ вам помог? Если да отметьте его как ответ, если нет пишите что не так, поможем.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Отвечающий