2013-04-11 27 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);