网络编程10

SCTP客户/服务器程序设计

  1. 与 TCP 回射程序的对比
    TCP:字节流,无消息边界
    SCTP:消息有边界,一次 sctp_recvmsg 收一条完整消息
    SCTP 支持多流:可让不同"会话"走不同流,某流阻塞不影响其他

  2. SCTP 服务器模式
    迭代(iterative):一次处理一个客户,类似简单 UDP 服务器
    并发(concurrent):fork/线程,类似 TCP 并发服务器
    注意:SCTP 是关联(association)不是"连接",一个客户可对应多个地址

  3. sctp_sendmsg 参数
    sockfd, data, len, to, tolen,
    ppid, flags, stream_no, timetolive, context

  4. sctp_recvmsg 返回值
    除数据外,还得到:

  • 对端地址(from)
  • sctp_sndrcvinfo:sinfo_stream(流号)、sinfo_ppid、sinfo_flags 等
  • msg_flags:MSG_EOR、MSG_NOTIFICATION 等
  1. SCTP 通知
    设置 SCTP_EVENTS 后可收到关联建立/关闭、对端地址变更等通知
    通知通过 recvmsg 的 MSG_NOTIFICATION 标志区分

  2. 一-to-多式(one-to-many)vs 一对一式(one-to-one)
    one-to-many:一个 socket 可有关联到多个对端,类似 UDP
    one-to-one:每个关联一个 socket,类似 TCP,用 sctp_peeloff 从 one-to-many 中"剥出"

posted on 2026-03-02 10:33  cyusouyiku  阅读(1)  评论(0)    收藏  举报