LINUX.ORG.RU

[C] асинхронный клиент к асинхронному серверу

 


0

0

Есть асинхронный однопоточный сервер. Теперь я хочу с сервера устанавливать соединения к другим серверам. read/write на сокете неблокируемый делается легко, а вот как быть с connect? Плодить отдельный тред для этого?

★★★★★

ну точно также насколько я понимаю , connect на неблокирующем сокете, и select-ом смотреть ...

anonymous
()
Ответ на: комментарий от anonymous

Так сам connect блокирующийся. Т.е. если удалённая сторона не отвечает или связь плохая то соединение будет очень долго устанавливаться. И в это время весь сервер будет простаивать ожидая возврата из connect().

true_admin ★★★★★
() автор топика

man connect

       EINPROGRESS
              The  socket  is  non-blocking and the connection cannot be completed immedi-
              ately.  It is possible to select(2) or poll(2) for completion  by  selecting
              the  socket for writing. After select(2) indicates writability, use getsock-
              opt(2) to read the SO_ERROR option at level SOL_SOCKET to determine  whether
              connect()  completed  successfully  (SO_ERROR  is  zero)  or  unsuccessfully
              (SO_ERROR is one of the usual error codes listed here, explaining the reason

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от true_admin


В дополнение к предыдущим ораторам могу добавить, что все это (и многое другое) разжевано в UNP Стивенса. Прочитай уже книжку, программист!

Onanim
()
Ответ на: комментарий от Onanim

да я просто ступил сильно, в гугле эта тема раскрыта полностью.

Подскажите книгу по ssl нормальную. Интересует как неблокируемое io сделать и с BIO_s_mem работать. Родные доки openssl абсолютно неадекватные, приходится чужие проги смотреть. Щас вот пытаюсь найти SSL and TLS: Designing and Building Secure Systems

PS не боитесь, не программер я, просто для души делаю :). Вряд ли мой код кому-то испортит настроение :)

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

спасибо, а то я уже заколебался с этим ssl. Ох уж эти неблокируемые сокеты... Щас вот nginx расковыриваю, там всё относительно понятно, но всё же лучше ещё и книжку почитаю.

true_admin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.