2013-03-29 2 views
1

Я ищу библиотеку типа NIO для C. Я хочу реализовать многопоточный сетевой сервер UDP, в котором будет много клиентов, подключающихся к нему.Сетевая библиотека для C

Вместо того, чтобы пытаться закодировать мою собственную программу для обработки пакетов и «соединений». Я думал, что посмотрю, нет ли уже существующей библиотеки, которая была протестирована и построена для обеспечения масштабируемости и высокой производительности.

Я нашел несколько для Java, но не для C., таких как Apache Mina.

Я надеюсь, что кто-то там знает о хорошем, который может мне помочь. Thaks

+2

придираться о "закодировать мои собственные классы": C не имеет классы. – hyde

+1

Важная деталь отсутствует: какая операционная система? Пожалуйста, отредактируйте вопрос, чтобы добавить соответствующие теги или объяснения. Сам C не имеет сетевого оборудования, и я думаю, что сетевые библиотеки часто зависят от ОС. – hyde

ответ

1

Прежде всего, C не имеет классов. Во-вторых, C предоставляет вам все необходимое для реализации масштабируемого и высокопроизводительного решения. Это более низкий уровень, чем NIO от Java, но в google есть хорошие учебные пособия.

И если вы хотите получить библиотеку - попробуйте boosts' asio. Это C++, но, возможно, вы можете его использовать.

4

Похоже, вы хотите что-то абстрактное select(), poll(), или что-то самое эффективное для вашей платформы.

Вы посмотрели libevent и libev? Есть хорошая запись here.

1

Если вы используете Linux, я настоятельно рекомендую вам использовать POSIX API. Это дает вам ресурсы для многопоточности и взаимодействия в любом ящике Linux.

GNU C library

Смежные вопросы