С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ под Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/28: Рейтинг темы: голосов - 28, средняя оценка - 5.00
***GIN***
30 / 30 / 2
Регистрация: 09.04.2010
Сообщений: 60
1

Неблокирующие сокеты

30.08.2011, 11:46. Просмотров 5196. Ответов 9
Метки нет (Все метки)

Пожалуйста помогите разобраться с темой неблокирующих сокетов. Литература или если есть у кого исходники. Как то.. никогда не занимался этой темой, а тут пришлось по заданию. До этого вообще знал только о сокетах работающих по принципу один поток один сокет, но сейчас задача стоит иная, один поток, много сокетов. Обшарил "весь" инет, ни где подробно тема не раскрывается. Исходники днем с огнем не найти. Главное что бы все это работало под Linux и(или) Android... Сейчас продолжаю искать и разбираться, но жду вашей помощи для ускорения процесса... а то сроки горят..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2011, 11:46
Ответы с готовыми решениями:

Неблокирующие сокеты блокируют во время передачи данных или нет
Если использовать не блокирующие сокеты то приложение не будет зависать на...

Сокеты
Здравствуйте. Пытаюсь разобраться с сокетами, но почему-то не удается( int...

Сокеты в Linux
Здравствуйте! Ребята, дайте мне пожалуйта простые примеры создания интернет...

AF_UNIX сокеты
Задание - написать программу, считающую корни квадратного уравнения в несколько...

Внутренние сокеты
Кто с этим работал подскажите верно ли мыслю: 1. Для создания таких сокетов...

9
Vourhey
Почетный модератор
6494 / 2269 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
30.08.2011, 11:51 2
А в чем конкретный вопрос? setsockopt NON_BLOCK. В инете искать влом, но можешь взять библиотеку libssh2, к примеру, и посмотреть, как сделано там. Там на неблокирующих сокетах крутилось все.
0
villu
203 / 204 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
30.08.2011, 17:26 3
Цитата Сообщение от Vourhey Посмотреть сообщение
setsockopt NON_BLOCK.
не
ioctl FIONBIO

http://publib.boulder.ibm.com/infoce...6xnonblock.htm

первая ссылка в гугле.
0
g_u_e_s_t
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
30.08.2011, 18:26 4
не)))
fcntl(, O_NOBLOCK,)

1. не верно
2. анахронизм, posix-way таки fcntl()
1
villu
203 / 204 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
30.08.2011, 21:09 5
Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
fcntl
кстати, да.
0
g_u_e_s_t
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
30.08.2011, 21:26 6
Почти в тему, из серии "хозяйке на заметку")))
в свежих линуксах появился accept4() - позволяет сразу поставить NONBLOCK и/или CLOEXEC на accepted сокет, экономя тем самым 2 сискола.
Интересно почему просто как в bsd не наследовать флаги от listen сокета?
0
villu
203 / 204 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
30.08.2011, 21:55 7
Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
в свежих линуксах появился accept4()
да вроде давно уже. В прошлом году еще его щупал.
0
g_u_e_s_t
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
30.08.2011, 22:08 8
Да я не за дату, очередной #ifdef LINUX добавили давно).
Мне не понятно зачем городить еще один сискол. Чем это лучше bsd'шного наследования флагов? Нет я конечно понимаю, что кому-то может потребоваться блокируемый listen и не блокированный accepted сокеты или наоборот, но вот на сколько это типично?
0
villu
203 / 204 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
30.08.2011, 22:20 9
хм, даже не задумывался. Прочитал что для портабельности надо на это не рассчитывать и все нужные флаги перебивать и все.
0
g_u_e_s_t
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
30.08.2011, 22:34 10
не, ну ведь наверное по любому используете какие-то библиотеки или просто обертки, иначе из соображений портабельности не только про такие мелкие трюки но и про /dev/poll / epoll /kqueue забыть придется) а раз все равно ifdef писать, то ИМХО и в этом случае можно) Но как то, утомляeт такой разброд. Складывается ощущение, что еще лет 5 и вернуться до-POSIXовые времена(
0
30.08.2011, 22:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2011, 22:34

Сокеты, sendbuffer flush
Здравствуйте! Имеется такая функция: int Socket::SendBytes(int socket,...

Сокеты. Runtime ошибка
Доброе время суток! Нашёл небольшой сервер на с++, немного допилил под себя....

клиент-сервер (сокеты)
сервер #include <sys/types.h> #include <sys/socket.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru