Symulacja NAT na przedmiot Symulacje Komputerowe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

110 lines
2.6 KiB

/*
* Main.cpp
*
* Created on: 07-01-2017
* Author: Piotr Dergun
*/
#include "common.h"
#include "Node.h"
#include "NATRouter.h"
#include "Simulation.h"
int main(int argc, char *argv[])
{
/*
* test puszczania sciezki external/internal
Node k1("K1", "10.0.0.5", "255.255.255.0", "10.0.0.2"), k2("K2", "10.0.0.2", "255.255.255.0", "10.0.0.1");
NATRouter n1("N1", "10.0.0.2", "255.255.255.0"), n2("N2", "10.0.0.1", "255.255.255.0");
n1.setWanIp("8.8.8.8");
n1.setWanMask("255.255.255.255");
n2.setWanIp("8.8.4.4");
n2.setWanMask("255.255.255.255");
n1.connectNode(&k1);
n2.connectNode(&k2);
n2.connectNode(&n1, true);
Packet pkt("TEST");
pkt.setDstIp("10.0.0.2");
pkt.setDstPort(1000);
cout << "N2 Send: " << n2.send(pkt) << endl;
cout << "Wywoluje onRecv() na N1" << endl;
n1.onRecv();
cout << "Wywoluje onRecv() na K2" << endl;
k2.onRecv();
exit(0);
*/
Simulation sim;
sim.createThread("timer", SIM_TIMER, &sim);
sim.p2pSimulation();
while(1);
exit(0);
/*
cout << "Obiekt PC1" << endl;
Node pc1("PC1", "10.0.0.2", "255.0.0.0", "10.0.0.1");
cout << "Obiekt PC2" << endl;
Node pc2("PC2", "10.0.0.3", "255.0.0.0", "10.0.0.1");
cout << "Obiekt R1" << endl;
NATRouter r1("R1", "10.0.0.1", "255.255.255.0");
r1.setWanIp("83.11.254.254");
r1.setWanMask("255.255.255.255");
cout << "Podlaczam PC1, PC2 z R1" << endl;
cout << r1.connectNode(&pc1) << endl;
cout << r1.connectNode(&pc2) << endl;
cout << "Obiekt S" << endl;
Node s("Serwer", "8.8.8.8", "255.255.255.255");
s.connectNode(&r1, true);
cout << "Tworze pakiet i adresuje go do PC2" << endl;
Packet p("piekna wiadomosc");
p.setDstIp("10.0.0.3");
p.setDstPort(80);
cout << "Wysylam wiadomosc z PC1: ";
cout << pc1.send(p) << endl;
cout << "Wywoluje onRecv() na R1 <-- pelni funkcje switcha" << endl;
r1.onRecv();
cout << "Wywoluje onRecv() na PC2" << endl;
pc2.onRecv();
cout << "Adresuje pakiet do serwera" << endl;
p.setDstIp("8.8.8.8");
p.setDstPort(80);
p.setMsg("to wiadomosc do serwera!");
cout << "Wysylam wiadomosc z PC1: ";
cout << pc1.send(p) << endl;
cout << "Wywoluje onRecv() na R1 <-- pelni funkcje SNAT" << endl;
r1.onRecv();
cout << "Wywoluje onRecv() na serwerze" << endl;
s.onRecv();
cout << "Serwer generuje odpowiedz (tymczasowo, poki nie ma swojej klasy)" << endl;
Packet rp("Odpowiedz z serwera do PC1");
rp.setDstIp("83.11.254.254");
rp.setDstPort(1);
cout << "Wysylam wiadomosc z serwera: ";
cout << s.send(rp) << endl;
cout << "Wywoluje onRecv() na R1 <-- pelni funkcje DNAT" << endl;
r1.onRecv();
cout << "Wywoluje onRecv() na PC1" << endl;
pc1.onRecv();
*/
return 0;
}