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

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

14.08.2013, 23:21. Показов 9035. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru