首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ns-3源代码

ns-3源代码
EN

Stack Overflow用户
提问于 2013-04-11 21:49:47
回答 1查看 1.8K关注 0票数 1

ns-3用户!我是ns-3的新手请帮我理解一下:http://code.nsnam.org/ns-3-dev/file/tip/examples/wireless/wifi-simple-adhoc-grid.cc

我不能理解这里的某些内容( 209到217行):

代码语言:javascript
复制
  $ TypeId tid = TypeId::LookupByName ("ns3::UdpSocketFactory");
  Ptr<Socket> recvSink = Socket::CreateSocket (c.Get (sinkNode), tid); //sinkNode=0
  InetSocketAddress local = InetSocketAddress (Ipv4Address::GetAny (), 80);
  recvSink->Bind (local);
  recvSink->SetRecvCallback (MakeCallback (&ReceivePacket));
  Ptr<Socket> source = Socket::CreateSocket (c.Get (sourceNode), tid);
  InetSocketAddress remote = InetSocketAddress (i.GetAddress (sinkNode, 0), 80);
  source->Connect (remote);$

这里发生什么事情?仅供参考:附加代码。

求求你帮帮我!谢谢大家!:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-12 14:41:33

下面注释了源代码。

获取可创建udp套接字的工厂类的唯一id。

代码语言:javascript
复制
TypeId tid = TypeId::LookupByName ("ns3::UdpSocketFactory");

在节点"sinkNode“上实际创建一个udp (不管它是什么)

代码语言:javascript
复制
Ptr<Socket> recvSink = Socket::CreateSocket (c.Get (sinkNode), tid);

将我们刚刚创建的套接字绑定到'any‘ipv4地址

代码语言:javascript
复制
InetSocketAddress local = InetSocketAddress (Ipv4Address::GetAny (), 80);
recvSink->Bind (local);

使套接字将其接收到的数据包转发到"ReceivePacket“函数

代码语言:javascript
复制
recvSink->SetRecvCallback (MakeCallback (&ReceivePacket));

在发送节点上创建udp套接字

代码语言:javascript
复制
Ptr<Socket> source = Socket::CreateSocket (c.Get (sourceNode), tid);

将udp套接字连接到接收节点上创建的udp套接字的ip地址和端口号。这只是将通过此套接字发送的数据包的缺省ip地址设置为

代码语言:javascript
复制
InetSocketAddress remote = InetSocketAddress (i.GetAddress (sinkNode, 0), 80);
source->Connect (remote);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15950535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档