CppNet
Введение в CppNet
Это простая кроссплатформенная программа TCP/UDP-сервер, репозиторий синхронизирует прогресс каждой версии итерации.
EasyTcpClientGO, версии 1.0–1.2: простая программа для однопользовательского сервера winsocket.
Версии 1.3–1.4: добавлены кроссплатформенные функции, введена модель ввода-вывода с использованием select I/O, многопутевая модель, добавлен буфер приёма на стороне сервера, добавлен буфер приёма и буфер сообщений на стороне клиента, повышена общая производительность сервера и клиента. На Windows сервер может обрабатывать до 64 (на Linux — до 1024) клиентских подключений и данных отправки и получения. Один клиент на Windows может иметь до 64 (на Linux до 1024) одновременных подключений к серверу и осуществлять простую отправку и получение данных.
Версия 1.5: преодолено ограничение на количество подключений в Windows с помощью select, добавлена поддержка параллельных подключений на стороне сервера.
Версия 1.6: изменена архитектура сервера, внедрена модель производителя-потребителя, разделены приём подключений и модули отправки данных. Сервер использует многопоточность и буфер подключений, что ускоряет обработку подключений и включает высокоточный таймер, сервер может отображать в реальном времени текущее количество подключённых клиентов и количество пакетов данных, обрабатываемых каждую секунду.
[Ошибка: при отключении клиента количество клиентов на сервере не обновляется своевременно.]
Версия 1.7: внедрён механизм событийного проксирования, при отключении клиента поток обработки сообщений уведомляет основной поток об отключении клиента и обновляет список клиентов и их количество.
Future: планируется увеличить размер буфера отправки сообщений на сервере. Разделить бизнес-логику, отделить отправку сообщений от приёма.
1.8.0: добавлен буфер отправки сообщений, сообщения отправляются порциями, когда количество полученных сообщений превышает размер настроенного буфера отправки.
[Ошибка: нет функции тайм-аута отправки, если сервер не получает сообщения и общее количество полученных сообщений меньше размера буфера отправки, то полученные сообщения могут бесконечно оставаться в буфере отправки.]
Future: добавить функцию тайм-аута отправки для отправки данных даже при отсутствии новых сообщений после истечения времени ожидания.
1.8.1: добавлены класс задачи отправки, очередь задач отправки, очередь отправки и поток отправки, отправка отделена от других функций.
1.8.3: добавлено сердцебиение, время ожидания по умолчанию составляет 300 секунд, клиенты автоматически отключаются при отсутствии данных.
1.8.5: поддерживается поток байтов.
1.8.6–2.0: оптимизирована структура кода с использованием Select для поддержки C10K.
2.1: настраиваемый буфер данных.
2.2: добавлена облегчённая система логирования.
2.3: улучшена система логирования.
2.4: поддержка запуска программы с помощью командного скрипта, оптимизация Select с пользовательским FD_SET.
2.5: использование Epoll для поддержки C10k.
2.6: использование IOCP для поддержки C10k.
Руководство по использованию
Инструкции по использованию
Описание демонстрационной программы
В папке «Демонстрационная программа» находится файл EasyTCP, который является тестовой программой сетевого движка. Для запуска нужно дважды щёлкнуть на «EasyTcpServer.exe» или «EasyTcpClient».
По умолчанию используется IP-адрес 127.0.0.1, порт 4567, программа настроена на работу в режиме клиента («EasyTcpClient») только для отправки данных и в режиме сервера («EasyTcpServer») только для приёма данных. По умолчанию размер отправляемых данных составляет 100 байт, а частота отправки — 10 пакетов в секунду. По умолчанию включена система логирования и установлено 4 потока. По умолчанию имитируется подключение 4 * 2500 клиентов.
Можно запустить программу с помощью скрипта. Для этого нужно дважды щёлкнуть на файле «EasyTcpServer.bat», чтобы запустить сервер, и на файле «EasyTcpClient.bat», чтобы запустить имитацию клиента.
По умолчанию используются IP-адрес 127.0.0.1 и порт 4567. Программа настроена на двустороннюю передачу данных между клиентом и сервером. Размер отправляемых данных по умолчанию составляет 100 байт, частота отправки — 10 пакетов в секунду, включена система логирования, установлено 4 потока, имитируется подключение 4 * 2500 клиентов. Подробные настройки можно найти в комментариях к скрипту, открыв его с помощью текстового редактора, например Notepad.
Участие в проекте
Специальные навыки
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )