#linux #rhel7 #sctp
#linux #rhel7 #sctp
Вопрос:
Связь SCTP была установлена между двумя узлами. Узлу 1 удалось отправить данные SCTP на узел 2. Но когда узел 2 пытается ответить на данные узла 1, sctp_send() завершается ошибкой с кодом EINVAL. Но между узлами происходит обмен данными SCTP HEARTBEAT и HEARTBEAT ACK. Пожалуйста, скажите мне, как отладить ошибку передачи данных SCTP.
Комментарии:
1. Похоже, что EINVAL связан не с состоянием ассоциации, а скорее с тем, как вы используете API. Можете ли вы предоставить образец вашего кода?
2. retVal = sctp_send(iActualSocFD,amp;событие-> данные[sz],(size_t)событие->len,(структура sctp_sndrcvinfo *) amp;sinfo,MSG_NOSIGNAL); if (retVal == -1) { LOG4CPLUS_FATAL(журнал, «Неизвестная ошибка»<<errno<<«SD»<<iActualSocFD) } Это тот же фрагмент кода продукта, который работал (sctp_send() успешно), когда он был скомпилирован на RHEL 6, но теперь выходит из строя после обновления до RHEL 7.6 . Сетевой объект, которому отправляется пакет sctp, находится на платформе RHEL 6. Создает ли это какую-либо проблему? Я полагаю, что обратная совместимость должна поддерживаться.