1

ns-3 ユーザー!私は ns-3 の初心者です ここで何かを理解するのを手伝ってください: http://code.nsnam.org/ns-3-dev/file/tip/examples/wireless/wifi-simple-adhoc-grid.cc

ここで何か理解できません (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);$

ここで何が起こっているのですか?参考までに:コードが添付されています。

私を助けてください!皆さん、ありがとうございました!:)

4

1 に答える 1

5

以下のコメント付きソースコード。

UDP ソケットを作成できるファクトリ クラスの一意の ID を取得します

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

実際にノード「sinkNode」にudpソケットを作成します(それが何であれ)

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

作成したソケットを「任意の」ipv4 アドレスにバインドします。

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

ソケットが受信したパケットを「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);
于 2013-04-12T06:41:32.710 に答える