Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Internet


Index » educatie » » informatica » Internet
» Protocoale de Internet


Protocoale de Internet


Protocoale de Internet

#include<sys/types . h>

#include<sys/socket . h>

#include<arpa/inet . h>

#include<netinet/in . h>

#include<string . h>

//declarare functie care efectuaza transferul comenzii la server si apoi primeste de la acesta mesajul si il trimite la

//client . primeste ca parametrii sirul de caractere primite de la client si socketul clientului

int trimite_la_server(char a[2],int newsockfd)

/*conectare*/

if(connect(sockfd2,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)//conectare la server cu mesaj in cazul in care nu sa reusit

/*primitiva care incearca si stabileasca o conexiune a clientului la un



server . Ea blocheaza procesul client pana cand conexiunea este stabilita .

*/

printf(' am reusit conectarea la server IPv6 n');

char com1[]='core show uptime',com2[]='core show version',com3[]='iax2 show provisioning';

//verificarea comenzii trimise ca parametru si transmiterea comenzii corespunzatoare serverrului IPv6

if(strcmp(a,'01#')==0)//daca clientul a trimis mesajul 01#

else if(strcmp(a,'02#')==0)//daca clientul a trimis mesajul 02#

else if(strcmp(a,'06#')==0)//daca clientul a trimis mesajul 03#

else//daca nu sa transmis niciuna din comenzile 01#,02#,06# atunci se transmite la client

//mesajur 'comanda invalida'

char sir[100]=' ';

printf('n Astept Raspunsul Server:nn');

printf('Serverul a transmis:%s n',sir);

//Transmit clientului mesajul 'Serverul IPv6 a raspuns'

char sir1[]='Serverul de IPv6 a raspuns: n';

send(newsockfd,sir1,strlen(sir1)+1,0);

char aux[]=' ';

int nr;

//receptionez mesajul de la server si il transmit la client

do

while(nr>0);//se executa atata timp cat nr de biti receptionati este diferit de 0, adica serverul transmite

close(sockfd2);//inchide socketul

printf('n n am inchis connexiunea cu serverul ipv6 astept noi comenzin');

return 1;

}

/*#########################################################################################################*/

int main(void)

printf('socket creat n');

serv_addr . sin_family=PF_INET;//tipul adresei

serv_addr . sin_addr . s_addr=htonl(INADDR_ANY);//accepta conexiuni de la orice client

serv_addr . sin_port=htons(14444);//initializare port pentru primirea datelor de la client

printf('fac bind');

if(bind(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)//fac bind

/*

bind() este o primitiva care ataseaza o adresa locala (adresa IP si numar port), la

un socket nou creat cu primitiva socket() . Pentru a se referi la acelasi socket,

primitivele socket() si bind() folosesc acelasi descriptor de comunicatie .

*/

do

printf('client connectat');

int gasit=1;

char a[2],com1[]='a fost executata cu succes comanda core show uptime';

char com2[]='a fost executata cu succes comanda core show version',com3[]='a fost executata cu succes comanda iax2 show provisioning';

char com4[]='comanda este invalida, va rugam introduceti urmatoarea comanda';

//recv(sockfd,a,3,0);

int nr=1;

while(nr>0)//atata timp cat clientul este conectat, adica numarul de biti receptionati este mai mare ca 0

//sfarsit daca

}//sfarsit sesiune de comunicari cu clientul in momentul in care acesta se deconecteaza,inchide socket-ul,

//adica numaru de biti receptionati este 0

close(newsockfd);//inchid socketul pentru client

/*close(): primitiv` care se nchide socketul deschis cu primitiva socket() .

*/

}while(1);//se executa la infinit

}





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate