Запись о сокете TCP после подключения, но перед ошибкой EconnrefusedLinux

Ответить Пред. темаСлед. тема
Anonymous
 Запись о сокете TCP после подключения, но перед ошибкой Econnrefused

Сообщение Anonymous »

I'm using non-blocking TCP sockets on linux, and occasionally seeing the following pattern:

[*]create the socket with socket() and set O_NONBLOCK
[*]call connect (to a non-listening port), get -1 with errno == EINPROGRESS
[*]use epoll to wait for the socket Чтобы можно было записаться < /li>
Как только сокет подходит для записи, вызов Getockopt для получения SO_ERROR, а ошибка - 0 < /li>
В конечном итоге соединение потерпела неудачу, поэтому попытки написать гнездо, что я вызывает ошибку < /li>
< /ol>
, я выставлю это. Enotconn возвращается к шагу 3. Мои вопросы: < /p>
  • Это нормальное поведение от ядра Linux, или я сделал некоторую ошибку в том, как я обрабатываю Epoll или не блокировку подключения? Другой вариант-вызов Connect во второй раз и посмотреть, является ли Errno Erlready, Eisconn или какая-то другая ошибка. < /Li>
    Есть ли какой-то другой шаблон, который я должен использовать при создании неблокирующих соединений TCP? Это критичный код производительности, и getPeerName () должен произойти в общем случае, к сожалению.


Подробнее здесь: https://stackoverflow.com/questions/797 ... used-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»