0

Многопоточный чат с использование протокола UDP | C#

Доброго времени суток, дорогие подписчики! Сегодня я хочу вам рассказать и показать как написать чат с использованием протокола UDP на C#, это приложение, а точнее два приложения, клиент и сервер, послужат нам основой для realm server’a.


Для начала давайте разберемся, что из себя представляет протокол UDP.

Лучше Википедии я вам рассказать не смогу, так, что вот кусочек информации из википедии — UDP (англ. User Datagram Protocol — протокол пользовательских датаграмм) — один из ключевых элементов TCP/IP, набора сетевых протоколов для Интернета. С UDP компьютерные приложения могут посылать сообщения (в данном случае называемые датаграммами) другим хостам по IP-сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных. Протокол был разработан Дэвидом П. Ридом в 1980 году и официально определён в RFC 768.


Теперь скажу своими словами, помните, когда я рассказывал про TCP, говорил, что, для начала общения между 2-мя приложениями необходимо установить связь. А используя протокол UDP, никакой связи устанавливать не надо! Я буду использовать сокеты для работы с UDP протоколом.


На 1 приложение приходится 1 класс. Я решил выкладывать код не скринами, а в GitHub Gist. Вот сервер, а вот клиент. А вот видеозапись как это работает:

https://vimeo.com/302489273


Так же сервер можно поставить на удаленную машину, и открыть необходимы для вас порт, а на клиенте ввести ip адрес удаленной машины и порт.


В скором времени сервер этого чата будет переписан, под синхронизацию игроков, а клиент будет перенесен в Unity и так же будет переписан.


Статью написал Миша, по всем вопросам обращайтесь к нему в телеграмм: @michael_vv


Все вопросы в коменнтах.