2010-09-23 4 views
2

Предположим, что я установил соединение на сокете и получил код ошибки Posix при отправке или приеме пакета: один из них указан в конце this page. На каких ошибках я должен не закрыть сокет, потому что попытка отправить/получить на том же сокете снова может работать?Какие ошибки сокета Posix могут быть восстановлены?

+0

У вас есть список кодов ошибок, специфичных для вашей реализации? Страница, на которую вы ссылаетесь, показывает довольно полный каталог 'errno.h', не все из которых правдоподобны для операций сокета (AF_INET, TCP). Например, ECHILD является маловероятной ошибкой send/recv. – pilcrow

+0

К сожалению, я этого не делаю. –

ответ

1

EAGAIN, EWOULDBLOCK подлежат возмещению. Возможно, EINVAL. ECONNRESET, ENOTCONN, ECONNABORTED, EPIPE, EADDRINUSE, определенно нет.

+1

, возможно, вы захотите добавить EINTR, так как обычно вам просто нужно снова повторить системный вызов. – Arvid

Смежные вопросы