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

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

14.08.2013, 23:21. Показов 8713. Ответов 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
03.11.2013, 00:59  [ТС]
Студворк — интернет-сервис помощи студентам
Незначительное обновление до версии 1.3.1
  • Сервер теперь автоматически закрывает пустые комнаты.
  • В сообщении теперь выводится и время в которое сообщение было прислано.
  • Оповещение о приходе сообщение:
    На панели задач, загорается желтым. (Возможно отключение)
    Шрифт на не открытых вкладках краснеет, если там есть непрочитанные сообщения.

Версия совместима с версией 1.3
Вложения
Тип файла: zip TCPChat.zip (44.4 Кб, 17 просмотров)
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
13.11.2013, 23:49  [ТС]
Обновление до версии 1.4

Программа не совместима с более ранними ее версиями. (начиная с версии 1.3 клиент сам скажет совместим он с сервером или нет)
  • Введена система пересоединения к серверу, если был обрыв связи. (для этого пингование перенесено из сервера в клиент, по этому версии программ и не совместимы)
  • Введена возможность смены администратора комнаты.
  • Реализовано сохранение настроек, таких как последние данные в форме соединения и включения сервера, оповещения и размеры формы.
  • Исправлены некоторые недоработки.
Вложения
Тип файла: zip TCPChat.zip (47.5 Кб, 17 просмотров)
0
14.11.2013, 00:21

Не по теме:

ИМХО не в том направлении развитие идет. Вот если прикрутить голосовой чат с передачей файлов(опционально). Упростить до предела поднятие своей конфы (чтобы орангутанг освоил за пару минут) - есть шанс выстрелить.

Существующие решения достаточно сложны в настройке к тому же не лишены недостатков типа плохого качества звука или тормозов при наличии более 20-40 чел в конференции.

1
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
14.11.2013, 01:19  [ТС]
Да, я об этом думал, но для начала я хочу допилить нормально комнаты, плюс получить кое какую стабильность в работе.

Для начала хотя бы файлы передавать. В следующей версии, возможно.
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
19.11.2013, 19:06  [ТС]
Обновил чат до версии 1.5

Основное обновление: возможность передавать файлы.

Для этого нужно просто перетащить файл в окно с сообщениями, либо выбрать соответствующую команду в меню "Файлы".

После этого файл станет доступным для загрузки другими пользователям, которые находятся в той комнате в которую был добавлен файл.

Для того что бы сделать файл не доступным для загрузки нужно выбрать пункт меню "Раздающиеся файлы". После этого откроется окно в котором можно выбрать комнату из которой следует удалить файл, и удалить нужный файл.

Файлы скачиваются прямиком с компьютера, файлы на сервере не сохраняются.

ЗЫ чат с предыдущими версиями не совместим.
ЗЫЫ нужен все также .NET 3.5
Миниатюры
Многопользовательский TCP Chat  
Вложения
Тип файла: zip TCPChat.zip (56.3 Кб, 22 просмотров)
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
20.11.2013, 00:28
Сервер запущен.
Кликните здесь для просмотра всего текста
81.177.159.118:10060
1
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
23.11.2013, 14:36  [ТС]
Версия 1.5.1
Исправил несколько багов связанных с передачей файлов.

Версия совместима с предыдущей (1.5.0).

Еще выложил проект на GitHub
Вложения
Тип файла: zip TCPChat.zip (56.6 Кб, 15 просмотров)
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
31.12.2013, 01:55  [ТС]
Переделал передачу файлов, теперь все происходит напрямую между клиентами.

Версия не совместима с предыдущей.

Обновил код на GitHab'e
Миниатюры
Многопользовательский TCP Chat  
Вложения
Тип файла: zip TCPChat.zip (112.4 Кб, 14 просмотров)
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
01.01.2014, 02:00
Цитата Сообщение от Anklav Посмотреть сообщение
(Сообщение шифруется симметричным алгоритмом (AES) и отправляется вместе с ключем, ключ шифруется с помощью RSA (RSA используется с 2048 битным ключем)).
А как происходит обмен ключами RSA?
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
01.01.2014, 14:19  [ТС]

Не по теме:

Гы



Dmitriy_M, RSA это асимметричный шифр, для него можно просто обменяться открытыми ключами.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
01.01.2014, 14:32
Цитата Сообщение от Anklav Посмотреть сообщение
RSA это асимметричный шифр, для него можно просто обменяться открытыми ключами.
Без разницы симметричный или асимметричный шифр. Проблема в обмене ключами.
Протокол Диффи — Хеллмана
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
01.01.2014, 15:06  [ТС]
Dmitriy_M, Как это без раницы, асиметричный шифр использует 2 ключа специально для этого. Первый ключи публичный, второй приватный. Публичным ключем можно только шифровать сообщение, а приватным расшифровывать. В результате мы посылаем публичный ключ клиенту, шифруем сообщение, а расшифровать его может только владелец приватного ключа (который никому не посылается и находится всегда у 1 владельца).

Ну и ниже читайте на той же Вики:

Алгоритм Диффи — Хеллмана также может быть использован при шифровании с открытым ключом. В этом случае общая схема остаётся аналогичной приведённой выше, но с небольшими отличиями. Алиса не передаёт значения p, g и A Бобу напрямую, а публикует их заранее в качестве своего открытого ключа. Боб выполняет свою часть вычислений, после чего шифрует сообщение симметричным алгоритмом, используя K в качестве ключа, и передает шифротекст Алисе вместе со значением B.

На практике алгоритм Диффи-Хеллмана таким образом не используется. В данной области доминирующим алгоритмом с открытым ключом является RSA. Это обусловлено больше коммерческими соображениями, так как именно компанией RSA Data Security был создан центр сертификации. К тому же алгоритм Диффи — Хеллмана не может быть использован при подписании сертификатов.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
01.01.2014, 17:29
Цитата Сообщение от Anklav Посмотреть сообщение
Как это без раницы
Очень просто. Нет защиты от перехвата ключа.
Кликните здесь для просмотра всего текста

Цитата Сообщение от Anklav Посмотреть сообщение
Алгоритм Диффи — Хеллмана также может быть использован при шифровании с открытым ключом. В этом случае общая схема остаётся аналогичной приведённой выше, но с небольшими отличиями. Алиса не передаёт значения p, g и A Бобу напрямую, а публикует их заранее в качестве своего открытого ключа. Боб выполняет свою часть вычислений, после чего шифрует сообщение симметричным алгоритмом, используя K в качестве ключа, и передает шифротекст Алисе вместе со значением B.
На практике алгоритм Диффи-Хеллмана таким образом не используется. В данной области доминирующим алгоритмом с открытым ключом является RSA. Это обусловлено больше коммерческими соображениями, так как именно компанией RSA Data Security был создан центр сертификации. К тому же алгоритм Диффи — Хеллмана не может быть использован при подписании сертификатов.

Telegram использует DH, для обмена ключами.
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
01.01.2014, 17:31  [ТС]
Dmitriy_M, Ну перехватят открытый ключ, какая разница? Вы ничего с ним не сможете сделать, кроме как ЗАШИФРОВАТЬ.

Ну правда программа уязвима к атаке "человек посередине", вы про это?
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
02.03.2014, 17:31  [ТС]
Переделал UI под модель MVVM (Было тяжело не перейти на версию .NET повыше чем 3.5).
Немного отрефакторил код движка чата.

Функционал чата не расширялся. Но было бы не плохо протестировать GUI.
(При работе на протоколе IPv6 с передачей файлов пока будут проблемы)

Код на GitHub

Вложения
Тип файла: zip TCPChat.zip (121.0 Кб, 15 просмотров)
0
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
21.04.2014, 21:42  [ТС]
Появилось время и я починил передачу файлов для IPv6.
Пришлось немножечко поменять код Lidgren.Network, поэтому он теперь выложен рядом с проектом.

Исходники на GitHub
Вложения
Тип файла: zip TCPChat.zip (120.7 Кб, 11 просмотров)
0
Охотница на ведьм
 Аватар для Vedma
313 / 97 / 8
Регистрация: 26.11.2011
Сообщений: 2,784
Записей в блоге: 5
22.04.2014, 11:23
Распределение цветов новому пользователю рандомно - было бы плюсом...но это на усмотрение

Добавлено через 1 минуту
Например в приложении WhatsApp цвета контактов в группе разными цветами
1
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
07.06.2014, 00:30  [ТС]
Отрефакторил модель, в основном это касалось синхронизации.
Проще стала и ViewModel.
Дальше думаю таки займусь голосовой связью.

Исходники на GitHub
Вложения
Тип файла: rar TCPChat.rar (106.5 Кб, 11 просмотров)
1
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
28.06.2014, 23:55  [ТС]
Добавил голосовой чат.
Сейчас реализовано как бета версия, без интерфейса. Это значит, что:
  • Голосовой комнатой являются все кроме главной.
  • Настроек пока нету.
  • Кнопка для активации микрофона закреплена за кнопкой E.

Для воспроизведения и записи звука был выбран OpenAL.
Также был переработан P2P.

Как всегда исходники выложены на GitHub

Или можно скачать собранный чат, из вложений:
Вложения
Тип файла: zip Builded chat.zip (158.6 Кб, 13 просмотров)
1
 Аватар для Anklav
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
02.07.2014, 16:17  [ТС]
Написал небольшую статью про устройство чата, на хабре.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2014, 16:17
Помогаю со студенческими работами здесь

Реализовать на 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 (флаги, контрольная...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru