1

我必须运行两个具有不同 RcvBufSize 的 TCP 会话。

我知道以下代码可以为所有 TCP 会话设置 RcvBufSize。

Config::SetDefault("ns3::TcpSocket::RcvBufSize", UintegerValue (1500000));

实际上,我正在寻找类似的功能setsockopt() 为每个 TCP 会话设置 SO_RCVBUF 之类的功能。

我也尝试过沮丧Ptr<Socket>Ptr<TcpSocket>但是SetRcvBufSize()是私有函数...

有没有办法解决这个问题?

4

1 回答 1

0

SndBufSize我使用调用更改了我的应用程序SetAttribute。我有一个带有套接字指针成员的类ns3::Ptr<ns3::Socket> m_pSocket,要更改发送缓冲区大小,我这样做:

// create tcp socket
m_pSocket = ns3::Socket::CreateSocket( GetNode(), ns3::TcpSocketFactory::GetTypeId() );
m_pSocket->SetAttribute("SndBufSize", ns3::UintegerValue(4096000));

因此,在您的情况下,您必须致电:

yourSocket->SetAttribute("RcvBufSize", ns3::UintegerValue(1500000));

这样您就可以设置ns3::TcpSocket的每个属性。

于 2016-06-02T17:46:40.780 回答