Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-----------CLIENT-----------
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdio.h>
- #include <netinet/in.h>
- #include <netinet/ip.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <stdlib.h>
- int main(int argc, char* argvs[]){
- int c;
- struct sockaddr_in server;
- char ip[20];
- strcpy(ip,argvs[1]);
- int port = atoi(argvs[2]);
- c = socket(AF_INET, SOCK_STREAM, 0);
- if(c<0){
- printf("Eroare socket client!\n");
- return 1;
- }
- memset(&server, 0 ,sizeof(server));
- server.sin_port = htons(port);
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = inet_addr(ip);
- if (connect(c, (struct sockaddr *) &server, sizeof(server)) < 0) {
- printf("Eroare conectarea la server!\n");
- return 1;
- }
- int a,b;
- int suma;
- printf("Introduceti numerele: " );
- scanf("%d",&a);
- send(c,&a,sizeof(a),0);
- recv(c,&suma,sizeof(suma),0);
- printf("%d\n",suma );
- close(c);
- }
- //-----------SERVER-----------
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <stdio.h>
- #include <netinet/in.h>
- #include <netinet/ip.h>
- #include <string.h>
- #include <stdlib.h>
- #include <unistd.h>
- int main(int argc, char* argvs[]){
- int s,c,l;
- int suma = 0;
- int p[2]; pipe(p);
- struct sockaddr_in server, client;
- int port = atoi(argvs[1]);
- s = socket(AF_INET, SOCK_STREAM, 0);
- if(s<0){
- printf("Eroare socket server!\n");
- return 1;
- }
- memset(&server, 0, sizeof(server));
- server.sin_port = htons(port);
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = INADDR_ANY;
- if(bind(s,(struct sockaddr *) &server ,sizeof(server))<0){
- printf("Eroare la bind!\n");
- return 1;
- }
- listen(s,5);
- l = sizeof(client);
- memset(&client,0,sizeof(client));
- while(1){
- c=accept(s,(struct sockaddr *) &client, &l);
- printf("S-a conectat un client\n");
- if(fork()==0){
- int a;
- recv(c,&a,sizeof(a),MSG_WAITALL);
- suma+=a;
- send(c,&suma,sizeof(suma),0);
- write(p[1],&suma,sizeof(int));
- close(p[0]);close(p[1]);
- close(c);
- return 0;
- }
- read(p[0],&suma,sizeof(int));
- if(suma == 0){
- close(p[0]);close(p[1]);
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement