Чат Xiaoliu - принцип реализации инструмента чата

задняя часть

предисловие

Инструменты чата становятся все более и более неотделимыми от нашей повседневной жизни, глядя на腾讯Два инструмента большого парняQQ,We Chatодиноко в реках и озерах,小马哥Скучно дома каждый день считать деньги

Несколько дней назад Сяолиу собирал где-то травы и случайно упал в пещеру.Очнувшись от комы, он обнаружил, что на каменной стене была выгравирована Цзюян Шенгун.Есть глава о том, как сделать инструмент для чата.

C/S режим

режим C-SClient-Server 模式Также называется режимом клиент-сервер. Между клиентом и сервером согласовываются различные протоколы, клиент вводит инструкцию, а сервер возвращает результат расчета.

TCP/UDP-протокол

Энциклопедия TCP Baidu

Энциклопедия UDP Baidu

OS

  1. Все является файлом в ОС.Будь то запись или чтение с жесткого диска или из сети, ОС даст ему файловый дескриптор
  2. Файловые дескрипторы управляются ядром. Чтение и запись информации должны проходить через ядро, поэтому в пространстве должно быть пространство, в котором может храниться информация.
  3. Информация в конечном итоге передается приложению, поэтому между процессом ядра и пользовательским процессом все еще существует ввод-вывод.
  4. На этом этапе сетевая информация хранится в пространстве пользовательского процесса пользователя, и пользователь может использовать

После основного введения, как создать свой собственный чат-инструмент

Инструменты чата

После предыдущего введения в настоящее время существует ситуация между клиентом и сервером, как показано на рисунке. Два клиента не могут общаться напрямую客户端不在公网上

Однако IP-ПОРТ сервера в общедоступной сети фиксирован, и приложение на клиенте может подключаться к серверу в любом месте и отправлять информацию на сервер.

На основании вышеизложенного клиент может подключиться к серверу в любое время (C/S结构)

К каждому клиенту на сервере подключены файловые дескрипторы (ОС->fd)

Так что клиент выбирает другой на сервереfdи отправить информацию на сервер

После того, как сервер получит информацию, по выбору клиентаfdНаправьте информацию соответствующему клиенту. Завершите связь между пользователем A и пользователем B.


прошлые статьи

  1. Чат Xiaoliu - принцип реализации инструмента чата
  2. Чат Xiaoliu - принцип реализации боевой платформы
  3. Чаты Xiaoliu — принцип реализации nginx

Инструмент для чата своими руками

Кодовый адрес инструмента мини-чата


Групповой чат

Q: 如何实现群组聊天

A: Просто выберите еще несколькоfd