Как использовать select () в клиентской программе чата при программировании на сокете C? - PullRequest
0 голосов
/ 01 сентября 2010

Я новичок.

Я хочу заставить клиентскую программу получать ввод с клавиатуры и данные с сервера.Я не хочу, чтобы при вводе пользователем чего-либо (scanf) и его блока получать данные с сервера.

Как написать код на C?

Спасибо.

1 Ответ

2 голосов
/ 01 сентября 2010

Добро пожаловать:)

Я предлагаю как можно быстрее получить копию Расширенное программирование в среде Unix, 2-е издание . Здесь есть отличные примеры использования select() (и всего остального тоже).

Пакет с исходным кодом на приведенной выше странице содержит отличный пример calld/loop.c, который более или менее точно показывает, что вы хотите - серверный цикл, который принимает соединения, добавляет соединения в маску выбора дескрипторов файлов и обрабатывает дескрипторы файлов по очереди.

Если вы хотите более дружественный интерфейс, исследуйте libevent . Libevent может дать вам более высокую производительность на широком спектре платформ и , приятный интерфейс. Отлично подходит для производственного кода, а может быть и менее подходит для изучения работы ядра.

...