⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sctp_pdapircv.lc

📁 unix网络编程卷1:套接口API的全书源码
💻 LC
字号:
static uint8_t *sctp_pdapi_readbuf = NULL;##  1 ##src/sctp/sctp_pdapircv.c##static int sctp_pdapi_rdbuf_sz = 0;##  2 ##src/sctp/sctp_pdapircv.c##uint8_t *##  3 ##src/sctp/sctp_pdapircv.c##pdapi_recvmsg(int sock_fd,##  4 ##src/sctp/sctp_pdapircv.c##              int *rdlen,##  5 ##src/sctp/sctp_pdapircv.c##              SA *from,##  6 ##src/sctp/sctp_pdapircv.c##              int *from_len, struct sctp_sndrcvinfo *sri, int *msg_flags)##  7 ##src/sctp/sctp_pdapircv.c##{##  8 ##src/sctp/sctp_pdapircv.c##    int     rdsz, left, at_in_buf;##  9 ##src/sctp/sctp_pdapircv.c##    int     frmlen = 0;## 10 ##src/sctp/sctp_pdapircv.c##    if (sctp_pdapi_readbuf == NULL) {## 11 ##src/sctp/sctp_pdapircv.c##        sctp_pdapi_readbuf = (uint8_t *) Malloc(SCTP_PDAPI_INCR_SZ);## 12 ##src/sctp/sctp_pdapircv.c##        sctp_pdapi_rdbuf_sz = SCTP_PDAPI_INCR_SZ;## 13 ##src/sctp/sctp_pdapircv.c##    }## 14 ##src/sctp/sctp_pdapircv.c##    at_in_buf =## 15 ##src/sctp/sctp_pdapircv.c##        Sctp_recvmsg(sock_fd, sctp_pdapi_readbuf, sctp_pdapi_rdbuf_sz, from,## 16 ##src/sctp/sctp_pdapircv.c##                     from_len, sri, msg_flags);## 17 ##src/sctp/sctp_pdapircv.c##    if (at_in_buf < 1) {## 18 ##src/sctp/sctp_pdapircv.c##        *rdlen = at_in_buf;## 19 ##src/sctp/sctp_pdapircv.c##        return (NULL);## 20 ##src/sctp/sctp_pdapircv.c##    }## 21 ##src/sctp/sctp_pdapircv.c##    while ((*msg_flags & MSG_EOR) == 0) {## 22 ##src/sctp/sctp_pdapircv.c##        left = sctp_pdapi_rdbuf_sz - at_in_buf;## 23 ##src/sctp/sctp_pdapircv.c##        if (left < SCTP_PDAPI_NEED_MORE_THRESHOLD) {## 24 ##src/sctp/sctp_pdapircv.c##            uint8_t *more;## 25 ##src/sctp/sctp_pdapircv.c##            more =## 26 ##src/sctp/sctp_pdapircv.c##                (uint8_t *) malloc(sctp_pdapi_rdbuf_sz + SCTP_PDAPI_INCR_SZ);## 27 ##src/sctp/sctp_pdapircv.c##            if (more == NULL) {## 28 ##src/sctp/sctp_pdapircv.c##                printf("Warning:memory exhausted - partial message loss\n");## 29 ##src/sctp/sctp_pdapircv.c##                left = sctp_pdapi_rdbuf_sz;## 30 ##src/sctp/sctp_pdapircv.c##                at_in_buf = 0;## 31 ##src/sctp/sctp_pdapircv.c##            } else {## 32 ##src/sctp/sctp_pdapircv.c##                memcpy(more, sctp_pdapi_readbuf, at_in_buf);## 33 ##src/sctp/sctp_pdapircv.c##                free(sctp_pdapi_readbuf);## 34 ##src/sctp/sctp_pdapircv.c##                sctp_pdapi_readbuf = more;## 35 ##src/sctp/sctp_pdapircv.c##                sctp_pdapi_rdbuf_sz += SCTP_PDAPI_INCR_SZ;## 36 ##src/sctp/sctp_pdapircv.c##                left = sctp_pdapi_rdbuf_sz - at_in_buf;## 37 ##src/sctp/sctp_pdapircv.c##            }## 38 ##src/sctp/sctp_pdapircv.c##        }## 39 ##src/sctp/sctp_pdapircv.c##        rdsz = Sctp_recvmsg(sock_fd, &sctp_pdapi_readbuf[at_in_buf],## 40 ##src/sctp/sctp_pdapircv.c##                            left, NULL, &frmlen, NULL, msg_flags);## 41 ##src/sctp/sctp_pdapircv.c##        at_in_buf += rdsz;## 42 ##src/sctp/sctp_pdapircv.c##    }## 43 ##src/sctp/sctp_pdapircv.c##    *rdlen = at_in_buf;## 44 ##src/sctp/sctp_pdapircv.c##    return (sctp_pdapi_readbuf);## 45 ##src/sctp/sctp_pdapircv.c##}## 46 ##src/sctp/sctp_pdapircv.c##

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -