Documente Academic
Documente Profesional
Documente Cultură
Proiect
Proiect
NUME PROIECT:Delphi
TIP PROIECT:C
NUME:PETROV
PRENUME:Burican Bogdan
AN:2
GRUPA:5A
ENUNT:
SERVER:seriesfs.c
if(nr>=3) //nu are rost sa verificam pentru mai putin de 3 numere daca sunt sau nu
in progresie
{
int k=1;
while((k<nr)&&((p_geo == true)||(p_ar == true)))
{
if(p_ar==true)
{
q=v[1]-v[0];
if((p_geo==false)&&(p_ar==false))
{strcpy(buffer,"nu"); }//daca numerele nu sunt in progresie,vom avea in
buffer sirul de caractere "nu" pe care il vom transmite ulterior clientului
In programul principal se pot vedea etapele parcurse de serverul TCP concurent prin
metoda forked:
CLIENT:seriesc.c
int nr;//numarul de nr
int v[100];//vect.cu nr
char buffer[100];//transm.mesaje client-server
printf("Introduceti nr de valori (nr>=3)\n");
do{
scanf("%d",&nr);
if (nr<3) printf("numarul trebuie sa fie mai mare de 3, reintroduceti
valoarea\n");
} while (nr<3);
if(write(sd,&nr,sizeof(int))<=0)
{
perror ("Eroare la write() spre server.\n");
return errno;
}
printf("Citirea sirului de numere\n");
int i;
for(i=0;i<nr;i++)
scanf("%d",&v[i]);
if(write(sd,v,sizeof(v))<=0)
{
perror ("Eroare la write() spre server.\n");
return errno;
}
int q;
if (read (sd, buffer, sizeof(buffer)) < 0)
{
perror ("Eroare la read() de la server.\n");
return errno;
}
if (read(sd, &q, sizeof(int)) <= 0)
{
perror ("Eroare la read() de la server.\n");
return errno;
}
if (strcmp(buffer,"nu")==0) {printf("%s\n",buffer);}
else {printf ("`%s ratia %d`\n", buffer,q);}
FISIERELE:
Pentru sever:seriesfs.c
Pentru client:seriesc.c
127.0.0.1-adresa de loopback
17171 este portul folosit in server