Documente Academic
Documente Profesional
Documente Cultură
PROIECTAREA APLICATIILOR IN
RETELE DE CALCULATOARE
-PROIECT-
Elev:Amarinei Marius-Alexandru
Grupa: 22C43 A
Cuprins
1. Descrierea și funcționarea protocolului
2. Descrierea jocului
3. Regulile jocului
4. Modul de rulare al programului
5. Parte de Server
6. Exercitiu :Cerinta +Rezolvare
1. Descrierea și funcționarea protocolului
TCP este un protocol sigur orientat pe conexiunea care permite ca un flux de octeți
trimiși de pe o mașină să ajungă fără erori pe orice altă mașină din inter-rețea. Acest
protocol fragmentează fluxul de octeți în mesaje discrete și pasează fiecare mesaj
nivelului internet. TCP tratează totodată controlul fluxului pentru a se asigura că un
emițător rapid nu inundă un receptor lent cu mai multe mesaje decât poate acesta să
prelucreze.
În stiva TCP/IP, protocolul IP asigură rutarea pachetelor de la o adresă sursă la o
adresă destinație, folosind și unele protocoale adiționale, precum ICMP sau IGMP.
Determinarea drumului optim între cele două rețele se face la acest nivel.
Așadar, acestea sunt o parte din caracteristicile și avantajele protocolului TCP:
Asigura retransmiterea pachetelor( în cazul în care acestea se “pierd pe
drum”)
Ordonează pachetele ajunse la destinție( acestea pot ajunge diferit față de
cum au fost trimise)
Stabilește o conexiune între client și server
TCP-ul reușește să facă toate acestea cu ajutorul unor tipuri de mesaje speciale:
SYN, ACK, FIN
PSH, RST, URG
2. Descrierea jocului
În prima etapă jucătorii pun pe rînd cîte una din piesele proprii pe punctele
tablei de joc. Această etapă se încheie când sunt plasate pe tablă toate cele
18 piese.
În a doua etapă jucătorii mută pe rând câte una din piesele proprii.
Jucătorul care începe jocul este decis fie de comun acord, fie de exemplu prin
aruncarea unui zar, fie cel care joacă cu piesele mai deschise la culoare.
Scopul urmărit de fiecare jucător este de a elimina una câte una piesele
adversarului. Pierde jucătorul care fie ajunge să aibă numai două piese, fie
nu-și poate muta nicio piesă.
Cînd un jucător realizează un șir de trei piese proprii de-a lungul uneia din
liniile tablei — configurație numită „moară” — el trebuie să aleagă una din
piesele adversarului și s-o elimine de pe tabla de joc. Piesa aleasă pentru
eliminare trebuie să nu facă parte dintr-o moară; în unele variante ale jocului
această regulă se ignoră atunci când toate piesele adversarului sunt incluse în
mori.
5. Parte de Server
Conectarea
Pentru conectare, am creat folderul Connection ce contine 3 clase:
ConnectionObject.cs, IConnection.cs si TCPConnection.
In clasa TCPConnection am creat un socket in care am specificat 3 parametri: primul
parametru este familia de adrese, care in acest caz este interNetwork, tipul socket-
ului, in acest caz vom folosi socket bazat pe conexiuni in ambele sensuri: stream si
tipul protocolului folosit: TCP.
localSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
Dupa ce am creat un socket trebuie sa realizam o conexiune la server, iar pentru a
ne conecta la un server este necesar sa cunoastem adresa IP si portul la care ne
conectam:
IPEndPoint localEndpoint = new IPEndPoint(IPAddress.Any, port);
Am creat 3 declaratii de tipul delegate cu ajutorul carora realizam comunicarea intre
obiecte si face referire la metodele claselor cu acelasi nume:
public delegate void ConnectCompletedHandler(object sender, EventArgs
args);
public event ConnectCompletedHandler OnConnectCompleted;
private void ConnectCompleted(object sender, EventArgs args)
{
if (OnConnectCompleted != null)
{
OnConnectCompleted(sender, args);
}
}
In clasa IConnection inchidem conexiunea la server, inchidem socket-ul si stergem
portul de unde s-a facut conectarea:
bool close();
bool close(Socket sock);
bool connect(IPEndPoint remoteEndpoint);
bool reserve(int port);
bool send(byte[] data);
Iar in clasa ConnectionObject declaram metodele pentru trimiterea datelor byte[] data
si pentru socket-ul la distanta:
public byte[] data { get; set; }
public Socket remoteSock { get; set; }
Cerinta:
In proiectul facut,se va adauga o regula astfel incat daca se face oricare dintre colturi
(cand fac o linie numai de albastru/rosu) in patratul exterior se vor lua 2 piese.
Rezolvare:
Etapa 1 :
Se creeaza o variabila numita “moaraMare” de tip Boolean in “program.cs”.
Etapa 2:
Se creeaza o functie care verifica daca linia se face pe patratul mare.
Etapa 3:
Cand se fac verificarile de linie se face si verificarea daca linia creata se afla pe
patratul mare si se atribuie variabilelei “moaraMare” rezultatul acesteia.
Inlaturare piesa
Update status.