Je souhaite simuler un comportement simple demande-réponse client-serveur continu; c'est-à-dire que le client envoie un paquet au serveur, puis le serveur reçoit le paquet et répond au client, puis le client reçoit le paquet de réponse et il envoie à nouveau un nouveau paquet au serveur et ainsi de suite. J'ai pensé à envoyer un tour de communication (client-> serveur-> client) mais je ne sais pas comment continuer. Ceci est mon code pour réaliser un tour:Simulation d'une communication client-serveur continue dans ns3
UdpEchoServerHelper echoServer (9);
ApplicationContainer serverApps = echoServer.Install (wifiApNode.Get (nWifiAp - 1));
serverApps.Start (Seconds (1.0));
serverApps.Stop (Seconds (10.0));
UdpEchoClientHelper echoClient (apDevicesInterfaces.GetAddress (nWifiAp - 1), 9);
echoClient.SetAttribute ("MaxPackets", UintegerValue (1));
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue (1024));
ApplicationContainer clientApps;
clientApps = echoClient.Install (wifiStaNodes.Get (nWifiSta - 1));
clientApps.Start (Seconds (2.0));
clientApps.Stop (Seconds (10.0));
Si je mets tout autre int que 1 echoClient.SetAttribute ("MaxPackets", UintegerValue (1));
, je suis en mesure d'avoir que beaucoup de tours, mais le problème est qu'ils commencent tous à 1 deuxième intervalle (en raison de ceci: echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
). Je veux que le client commence à envoyer dès qu'il reçoit une réponse du serveur et pas après avoir attendu 1 seconde.