| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Вызов select грузит процессор |
| Автор: paradox91 26.5.2011, 10:39 | ||
| Может уже были такие темы, но не смог найти. Написал TCP клиент для курсовой, задача клиента дать пользователю вводить с терминала и отправлять по соединения, а также принимать из соединения и отображать на терминале текстовую информацию. Клиентская программа устанавливает соединение и входит в режим одновременного ожидания данных с терминала и со стороны через сокет. Проблема в том, что когда устанавливается соединение - загрузка процессора примерно на планке 60%. Подскажите пожалуйста - как исправить..А то это неправильно как то) Код программы:
|
| Автор: boostcoder 26.5.2011, 10:45 |
| отформатируйте код. глаз жалко. |
| Автор: GrayCardinal 26.5.2011, 15:55 |
| paradox91, Попробуйте struct timeval вынести вверх, за while |
| Автор: boostcoder 26.5.2011, 16:03 |
| я не вижу никаких причин чему-либо тормозить в этом коде.. |
| Автор: paradox91 26.5.2011, 21:28 |
| А есть вероятность того, что это сервер виноват? Для проверки всегда соединял с Эхо-сервером вот отсюда: http://www.rsdn.ru/article/unix/sockets.xml |
| Автор: svlary 27.5.2011, 05:17 |
| В строке 47 у Вас стоит вызов select, у которого задан параметр &writeset. В этом параметре Вы установили проверку 1-го дескриптора - stdout (строки 42-43) Вашего кода. В момент запуска вашего приложения, stdout готов к записи.
|
| Автор: GrayCardinal 27.5.2011, 06:51 |
| svlary, Однако. +1 |