Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 4

Не удается установить соединение клиента с сервером

25.03.2016, 00:38. Показов 2237. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Пишу чат, используя протокол Tcp. Доставка сообщений всем авторизованным пользователям осуществляется следующим образом:
1) При авторизации пользователя методом Socket.RemoteEndPoint берется его EndPoint;
2) Логин и EndPoint добавляются в словарь Dictionary<string, EndPoint> onlineList;
3) При отправке сообщения одним из пользователей запускается следующая функция:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public void MessageRequest (string decodedmessage)
        {
            byte[] codedmessage = Encoding.UTF8.GetBytes(message);
            int a;
            foreach (EndPoint end in onlineList.Values)
            {
                Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                sender.Connect(end);
                a = sender.Send(codedmessage);
                sender.Shutdown(SocketShutdown.Send);
                sender.Close();
            }
        }
В клиентской части работает поток с функцией для приема сообщений от сервера
C#
1
private static IPEndPoint ipEndPoint  = new IPEndPoint(IPAddress.Any, 0);
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void ReceiveMessage ()
          {
            Socket receiver = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            receiver.Bind(ipEndPoint);
            string decoded;
            receiver.Listen(100);
            while (true)
            {
                byte[] message = new byte[512];
                Socket handler = receiver.Accept();
                handler.Receive(message);
                decoded = Encoding.UTF8.GetString(message);
                Console.WriteLine(decoded);
            }
         }
Однако при запуске этой функции серверу не удается подключиться к клиенту, и происходит вылет сервера. В чём может быть ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2016, 00:38
Ответы с готовыми решениями:

Не удается установить надежное соединение с сервером
Хочу запустить на компьютере эмулятор ОС Андроид. Уже попробовал Bluestacks, Nox, Andy... Итог одинаковый - при добавлении аккаунта гугл...

Что за ошибка? Error Type: msxml3.dll (0x80072EFD) Не удается установить соединение с сервером
В вопросах по FAQ нашла код, как скачать текст с другого сайта, выдаётся такая ошибка: Error Type: msxml3.dll (0x80072EFD) Не...

Соединение клиента с сервером по сети интернет
На удаленном ПК развернут сервер MS SQL. Вопрос: Какой инструмент нужно учить что бы написать на C# клиент который через интернет будет...

2
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
25.03.2016, 05:33
Помоему указывать порт 0 это не совсем нормально. Указывайте конкретный порт и потом подключайтесь к нему.

Да и вообще соединяться с клиентом чтобы доставить ему сообщение выглядит как-то страннно. У вас же есть сервер, у него уже должны быть соединения со всеми клиентами, используйте эти соединения для доставки сообщений...
0
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 4
25.03.2016, 12:09  [ТС]
Я изначально думал создать список сокетов, в который добавлять обработчики всех пользователей, которые онлайн в данный момент. Но мне не удалось сделать цикл, в котором каждый сокет из этого списка слушает входящие сообщения от своего клиента, добавляет пришедшее сообщение в очередь и снова переходит в режим слушания. Не поможете?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2016, 12:09
Помогаю со студенческими работами здесь

Асинхронное программирование. Не происходит соединение клиента с сервером
Что я не так делаю ? Вот клиент : using System; using System.Text; using System.IO; using System.Net; using...

Глючит соединение с интернетом. Не открываются сайты, не удается установить DNS соединение
Добрый день! Помогите разобраться с проблемой!!! Есть сеть из 30 ПК, последнее 7 дней стал глючить интернет на некоторых ПК с разными ОС....

Не удается установить соединение с удаленным помощником, не удается сопоставить DNS-имя удаленного компьютера.
Здравствуйте.Пытаюсь подключиться к другому компу через приглашение по удалённому помощнику и в процессе соединения пишет: &quot; Не...

Установить соединение с сервером
Добрый день, уважаемые. Из за полного отчаяния создал тему с целью наконецтоки разобраться, так как найденные темы с подобной проблемой мне...

Установить соединение с sql сервером в VB
Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs) Dim DBConn as OleDbConnection Dim DBCommand As OleDbDataAdapter ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru