2013-04-11 83 views
1

ns-3用户! 我新手在NS-3 请帮我理解的东西在这里: http://code.nsnam.org/ns-3-dev/file/tip/examples/wireless/wifi-simple-adhoc-grid.ccns-3源代码

我不能在这里明白的地方(线从209〜217):

$ 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);$ 

这是怎么回事这里? 只是FYI:代码附加。

请帮助我! 谢谢大家! :)

回答

5

评论的源代码如下。

获取工厂类,可以创建UDP套接字

TypeId tid = TypeId::LookupByName ("ns3::UdpSocketFactory"); 

实际创建节点“sinkNode” UDP套接字(无论是)

Ptr<Socket> recvSink = Socket::CreateSocket (c.Get (sinkNode), tid); 

绑定插座,我们的唯一ID只是创建到'任何'ipv4地址

InetSocketAddress local = InetSocketAddress (Ipv4Address::GetAny(), 80); 
recvSink->Bind (local); 

使套接字转发数据包它r eceived的“ReceivePacket”功能

recvSink->SetRecvCallback (MakeCallback (&ReceivePacket)); 

发送节点上创建一个UDP套接字

Ptr<Socket> source = Socket::CreateSocket (c.Get (sourceNode), tid); 

UDP套接字连接到这是在水槽创建UDP套接字的IP地址和端口号节点。这只是设置通过此套接字发送的数据包的默认“to”ip地址

InetSocketAddress remote = InetSocketAddress (i.GetAddress (sinkNode, 0), 80); 
source->Connect (remote);