Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/41: Рейтинг темы: голосов - 41, средняя оценка - 4.83
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661

Многопользовательский TCP Chat

14.08.2013, 23:21. Показов 9042. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предоставляю на тестирование многопользовательский TCP Chat.

Можно запустить собственный сервер, или подключится к уже существующему.

Возможна отправка общий сообщений или личных, для отправки личного нужно кликнуть правой кнопкой на того кому будете отправлять сообщение и выбрать "Отправить ЛС".

Хотелось бы его протестировать в реальных условиях.

Для запуска нужен .NET 3.5
Миниатюры
Многопользовательский TCP Chat  
Вложения
Тип файла: zip TCPChat.zip (27.8 Кб, 108 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2013, 23:21
Ответы с готовыми решениями:

Многопользовательский TCP чат
Для отправки сообщений юзаю PrintWriter, поэтому flush'ить не надо. Вижу на сервере что юзеры подсоединяются, но сообщения не...

Chat-клиент, chat-сервер
Доброго времени суток. Задача - написать чат-сервер и чат-клиент на сокетах. Клиент и сервер написал, но клиенты работаю, скажем так по...

Сцена зависает при запуске TCP-клиента, когда он подключен к TCP - серверу, при этом TCP-клиент полностью функционирует
Проблема описана в заголовке, и хотелось бы услышать ваше мнение, о том как можно решить проблему. Скрипт TCP-клиента на сцене: ...

50
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
26.07.2014, 19:06  [ТС]
Студворк — интернет-сервис помощи студентам
Запускаю чат у себя на компьютере, по адресу:
Кликните здесь для просмотра всего текста

Адрес: 134.249.137.203
Порт: 10021


Изменения:
  • Настройки чата.
  • Баг фиксы.

GitHub
Вложения
Тип файла: zip TCPChat.zip (164.7 Кб, 28 просмотров)
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8729 / 3681 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
27.07.2014, 18:41
При попытке подключения, валится с исключением (судя по стеку, проблема не с подключением а с IO аудио-устройствами) + еще одно было при попытке сохранить настройки. Лог в аттаче.
Вложения
Тип файла: log UnhandledError.log (11.3 Кб, 12 просмотров)
1
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
27.07.2014, 18:48  [ТС]
Скинул чат со своими настройками.
OpenAL пытался найти микрофон и динамики, которых нет. И падал.
И бажок с "нажмите на клавишу" не учел

Ниже файл без сохраненных настроек звуковых устройств.
Вложения
Тип файла: zip Settings.zip (473 байт, 17 просмотров)
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8729 / 3681 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
28.07.2014, 00:33
Ну теперь процесс продвинулся чуть дальше, окно с подключением успевает закрываться и потом падает
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Time: 27-Jul-14 23:28:53;
Type: System.ArgumentException;
Message: recorder should be stopped;
StackTrace:
   at Engine.Audio.OpenAL.OpenALRecorder.SetOptions(String deviceName, AudioQuality quality)
   at UI.ViewModel.MainViewModel.InitializeClient(Boolean loopback)
   at UI.ViewModel.MainViewModel.Connect(Object obj)
   at UI.Infrastructure.Command.Execute(Object parameter)
   at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
   at System.Windows.Controls.Button.OnClick()
   at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Application.RunInternal(Window window)
   at UI.App.Main()
1
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
28.07.2014, 10:10  [ТС]
Если такая ошибка вызвана отсутствием микрофона, то исправил.

Напомню что сервер запущен по адресу (по будням он будет работать примерно с 21.00 по 1.00 GMT3, т.к. комп домашний и оставлять его включенным пока я на работе не очень хочется)

Кликните здесь для просмотра всего текста

134.249.137.203:10021


И с github можно всегда скачать последнюю версию бинарников, или самому их скомпилировать.
Вложения
Тип файла: zip Builded chat.zip (165.1 Кб, 23 просмотров)
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
12.08.2014, 00:28  [ТС]
Поднял сервер на вриутальной машине Azure.
Адрес: 23.102.33.19:10021

Работает все время
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
17.08.2014, 00:14  [ТС]
Исправил краши связанные с отсутствием OpenAL / микрофона / динамиков, теперь просто должно показываться сообщение, о том что голосовая связь буден не активна.

Также исправлены некоторые ошибки в P2P.

Сервер все также доступен по адресу : 23.102.33.19:10021

Исходники на GitHub обновлены.
А готовый чат можно скачать отсюда, либо с GitHub.
Вложения
Тип файла: zip TCPChat.zip (172.0 Кб, 17 просмотров)
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
23.11.2014, 13:57  [ТС]
  • Реализована поддержка плагинов (каждый плагин запускается в отдельном домене с ограниченными правами).
  • Фиксы и рефаторинг по проекту.

Исходные коды проекта: https://github.com/Nirklav/TCPChat
Пример плагина, который делает удаленный снимок экрана рабочего стола пользователя, и скачивает этот файл. (Peer to peer взаимодействие) https://github.com/Nirklav/ScreenshotPlugin

Статья с описанием реализации плагинов: http://habrahabr.ru/post/242209/

Способы загрузки:
Из вложения (вместе с плагином)
Из релиза на GitHub: https://github.com/Nirklav/TCP... /tag/2.3.1
Скачать исходники и собрать самому.
Вложения
Тип файла: zip TCPChat.zip (189.3 Кб, 38 просмотров)
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8729 / 3681 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
23.11.2014, 23:54
Anklav, я моментами наблюдаю за проектом (из личного любопытства) и вот возник вопрос, какова его цель? Повышение своих навыков, разработка (возможного) продукта, или что-то иное (навыки + продукт )?

Читал статью на хабре и по поводу плагинов, да и расширяемости в общем, возник вопрос, а почему не использовались уже готовые средства (Prism например), действительно ли есть необходимость в использовании отдельных доменов?
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
24.11.2014, 00:40  [ТС]
NickoTin, привет!

Проект - хобби. Просто было интересно разобраться и поработать с доменами

А вообще приятно, что проект кому то интересен, даже просто из любопытства.
2
1 / 1 / 0
Регистрация: 23.03.2015
Сообщений: 11
17.01.2016, 00:01
может выложишь исходник?
пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.01.2016, 00:01

Реализовать на tcp сокетах переподключение к tcp серверу в случае потери соединения
Всем привет, подскажите как можно реализовать на tcp сокетах переподключение к tcp серверу в случае потери соединения?

Подскажите самый простой пример TCP клиента и TCP сервера
Подскажите пример самого простого TCP клиента и TCP сервера.

Asio deadline_timer и tcp::socket отослать асинхоронно по tcp по таймеру
Здравствуйте. Цель по tcp соединению отсылать через равные промежутки времени сообщение одно и тоже. Слушать соединение. Цель 2 (не...

Если сервер TCP то и клиент тоже должен быть TCP?
Я полный новичок И я так понимаю есть TCP client (Sockets), TCP server (Sockets), и ClientSocket (ScktComp), ServerSocket (ScktComp) ...

TCP/IP пакеты. Как можно изменить служебные параметры заголовка TCP или UDP?
Всем привет! Работаю с передачей данных через интернет. Как можно изменить служебные параметры заголовка TCP или UDP (флаги, контрольная...


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

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru