1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/daitougege-c_tcp_udp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

C-язык: TCP и UDP

Введение

Реализованный на языке C сервер для сетевой коммуникации по протоколам TCP и UDP. Сервер TCP использует модель epoll(lt) и поддерживает одновременное подключение нескольких клиентов (максимальное количество подключений временно установлено на 8192). Он также обеспечивает обмен сообщениями между сервером и клиентами.
Этот проект может служить полным руководством для изучения и понимания программирования сокетов.

Наша цель

На основе этого полного кода сокета мы планируем провести техническое исследование между языками C и Go или другими языками, объединив наши знания и навыки в области технологий. В будущем мы также реализуем протокол MQTT. Все аппаратно-зависимые протоколы будут реализованы на языке C, а затем скомпилированы в библиотеку Linux SO, доступную для вызова из Go или других языков.

Инструкция по использованию

  1. Данный набор кода был протестирован, скомпилирован и запущен только на Linux. Тестирование на Windows не проводилось.
  2. Для тестирования вы можете использовать готовый сетевой инструмент, доступный в интернете. Например, https://wwa.lanzous.com/ik0g8gwirqj. Этот инструмент поддерживает TCP и UDP (однако UDP позволяет только отправлять сообщения, но не получать их).
    Обратите внимание: поскольку многие сетевые инструменты для Windows отправляют китайские символы в кодировке ANSI (GBK), наш сервер в настоящее время может обрабатывать только кодировки GBK и UTF-8. Другие кодировки с необычными символами пока не поддерживаются.

Список файлов

В скриншоте представлены исходные файлы и скомпилированные файлы. Процесс компиляции будет описан позже.
Список файлов

Компиляция сервера TCP

// tcp-сервер по умолчанию предоставляет услуги на порту 9505. Пожалуйста, разрешите доступ к порту 9505 в брандмауэре  
firewall-cmd --zone=public --add-port=9505/tcp --permanent
firewall-cmd --complete-reload

// компиляция tcpserver  
gcc -o tcp_server ./tcp_server.c ./libs/functions.c ./errors.c
// запуск
./tcpserver

//компиляция tcpclient  
gcc -o tcpclient ./tcp_client.c  
//запуск
./tcpclient

Использование tcpserver и tcpclient для тестирования
Использование tcpserver и tcpclient для тестирования

Тестирование с помощью стороннего сетевого инструмента
Тестирование TCP с помощью стороннего инструмента

Компиляция UDP-сервера

// udp-сервер по умолчанию предлагает услуги на порту 9506. Пожалуйста, разрешите доступ к порту 9506 в брандмауэре. Обратите внимание, что порт брандмауэра здесь — это протокол udp, не перепутайте его, иначе вы не сможете отправлять и получать сообщения  
firewall-cmd --zone=public --add-port=9506/udp --permanent
firewall-cmd --complete-reload

// компиляция udpserver  
gcc -o udp_server ./udp_server.c ./libs/functions.c ./errors.c
// запуск
./udpserver

// компиляция udpclient  
gcc -o udpclient ./udp_client.c
./udpclient

Использование udpserver и udpclient для тестирования
Использование udpserver и udpclient для тестирования

Тестирование с помощью стороннего сетевого инструмента
Тестирование UDP с помощью стороннего инструмента

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Реализация сетевых служб TCP и UDP на языке C, основная цель — исследование возможностей для дальнейшего использования в сочетании с языком Go. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/daitougege-c_tcp_udp.git
git@api.gitlife.ru:oschina-mirror/daitougege-c_tcp_udp.git
oschina-mirror
daitougege-c_tcp_udp
daitougege-c_tcp_udp
master