【问题标题】:How to send message to a SCTP association which is found during receive?如何将消息发送到接收期间发现的 SCTP 关联?
【发布时间】:2011-08-08 16:58:50
【问题描述】:

我有一个套接字来接收来自多个客户端的数据。

   sockfd = socket(...); 
   bind(sockfd, ...); 
   listen(sockfd, ...); 
   while (true) { 
    nread = sctp_rcvmsg(sockfd, ..., buf, ..., &info); 
    assoc_id = sinfo.sinfo_assoc_id; 
    stream = sinfo.sinfo_stream; 
    handle_message(assoc_id, stream, buf, nread); 
   }

我得到每个连接的关联 ID。我的问题是如何在关联 ID 上发送响应消息而不是使用客户端地址(例如 sctp_sendmsg 没有关联 ID 参数)

【问题讨论】:

    标签: c++ c networking sctp


    【解决方案1】:

    来自http://linux.die.net/man/3/sctp_peeloff

    int sctp_peeloff(int sd, sctp_assoc_t assoc_id);
    

    sctp_peeloff 将一对多样式套接字 sd 上的现有关联 assoc_id 分支到单独的套接字中。新的套接字是一对一样式的套接字。

    例如,当应用程序希望有多个零星的消息发送方/接收方保留在原始的一对多样式套接字下,但将那些承载大量数据流量的关联分支到它们自己的关联时,这是特别可取的单独的套接字描述符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多