Sunteți pe pagina 1din 2

Aplicatie Client Server pentru Registrul de Intrare-Iesire

In dezvoltare proiectului am folosit o aplicatie de tip UDP care ofer aplicaiilor o


modalitate de a trimite datagrame IP neprelucrate ncapsulate i pe care le transmite fr a
stabili o conexiune. Multe aplicaii client-server n care o parte emite cereri i cealalt
parte emite rspunsuri folosesc, mai curnd UDP dect s se complice s stabileasc i
apoi s elibereze o conexiune. UDP este descris n RFC 768.

Caracteristicile Protocolului UDP:

-- Fara conexiune
Nu exist handshaking
Fiecare segment/ datagram UDP este tratat
independent
Segmentele pot s fie:
Pierdute
Livrate fr ordine

Aplicatia contine doua proiecte: primul este Serverul care porneste aplicatia
UDP si cel de-al doilea este Clientul UDP avand conditia ca primul sa fie pornit
anterior.
Antetul celor doua programe este comun prin urmatoarele, deoarece este
o aplicatie orientate pe socket:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

In aplicatia server o parte foarte importanta este aceea in care se defineste
IP End Point-ul
int recv; //determina data de intrare de la client
byte[] data = new byte[1024]; //defineste unitatea de transfer dintre client si
server
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); //IP End Point-ul Propriu-
zis
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
ProtocolType.Udp); //Deschiderea unui nou socket si legarea sa
newsock.Bind(ipep);


In aplicatia client am definit urmatoarea structura:

struct Reg
{
public string date;
public string expeditor;
public string continut;
public string destinatar;

}
urmand ca aceasta sa fie initializata de la tastatura prin constructia de tipul:

Console.WriteLine("X: ");
r.X = Console.ReadLine();

Conexiunea cu server-ul este realizata prin:

byte[] data = new byte[1024];
string input, stringData;
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
ProtocolType.Udp);
cu singura diferenta ca se conecteaza la Ip-ul propriu (localhost) 127.0.0.1
la portul definit in server.
Am definit restrictii la introducerea datei astfel incat utilizatorul sa nu poata
decat sa foloseasca data de tip DD.MM.YYYY. Iar dupa fiecare inregistrare trimisa
la server clientul este intrebat daca doreste sa inchida conexiunea prin tastarea
EXIT:
if (input == "EXIT")
break;

urmand ca apoi sa efectueze comanda:

Console.WriteLine("Stopping client");
server.Close();

S-ar putea să vă placă și