在linux下使用sctp socket 發(fā)送報(bào)文,經(jīng)常出現(xiàn)應(yīng)用已經(jīng)調(diào)用了send接口冬骚,但是報(bào)文并沒(méi)有從網(wǎng)卡發(fā)出去草描,延遲在100ms以上。
原因應(yīng)該是send僅僅把報(bào)文放到了緩沖區(qū)慌洪,而內(nèi)核并沒(méi)有真正的發(fā)送出去顶燕。
需要把socket設(shè)置為非延遲發(fā)送。
int tmpflag = 1;
if(-1 == setsockopt( connSock, IPPROTO_SCTP, SCTP_NODELAY,
(const void *)&tmpflag, sizeof(int)))
{
ERR_LOG("setsockopt of SCTP_NODELAY error!");
}