Program:
// Client Program: mc.c
Server Program: ms.c
Output:
Terminal 1: (Server)
// Client Program: mc.c
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<sys/types.h> #include<sys/stat.h> #include<sys/socket.h> #include<arpa/inet.h> #include<netinet/in.h> main() { struct sockaddr_in client,server; int a[10][10],b[10][10],c[10][10],mt[4]; int s,sock,r,i,j; client.sin_family=AF_INET; client.sin_port=3000; client.sin_addr.s_addr=inet_addr("127.0.0.1"); s=socket(AF_INET,SOCK_STREAM,0); connect(s,(struct sockaddr *)&client,sizeof(client)); printf("Enter order of matrix 1:"); scanf("%d %d",&mt[0],&mt[1]); printf("Enter order of matrix 2:"); scanf("%d %d",&mt[2],&mt[3]); if(mt[1]!=mt[2]) printf("Matrices cannot be multiplied"); else { send(s,&mt,sizeof(mt),0); printf("Enter Elements for matrix 1:\n"); for(i=0;i<mt[0];i++) { for(j=0;j<mt[1];j++) { scanf("%d",&a[i][j]); } } send(s,&a,sizeof(a),0); printf("Enter Elements for matrix 2:\n"); for(i=0;i<mt[2];i++) { for(j=0;j<mt[3];j++) { scanf("%d",&b[i][j]); } } send(s,&b,sizeof(b),0); recv(s,&c,sizeof(c),0); printf("\nResult:\n"); for(i=0;i<mt[0];i++) { printf("\n"); for(j=0;j<mt[3];j++) { printf(" %d ",c[i][j]); } } } printf("\n"); close(s); }
Server Program: ms.c
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<sys/types.h> #include<sys/stat.h> #include<sys/socket.h> #include<arpa/inet.h> #include<netinet/in.h> main() { struct sockaddr_in client,server; int a[10][10],b[10][10],c[10][10],mt[4]; int s,sock,r,i,j,sz,k; server.sin_family=AF_INET; server.sin_port=3000; server.sin_addr.s_addr=inet_addr("127.0.0.1"); s=socket(AF_INET,SOCK_STREAM,0); bind(s,(struct sockaddr *)&server,sizeof(server)); listen(s,1); sz=sizeof(server); sock=accept(s,(struct sockaddr *)&server,&sz); recv(sock,&mt,sizeof(mt),0); recv(sock,&a,sizeof(a),0); printf("\nReceived Matrix 1\n"); for(i=0;i<mt[0];i++) { printf("\n"); for(j=0;j<mt[1];j++) { printf(" %d ",a[i][j]); } } recv(sock,&b,sizeof(b),0); printf("\nReceived Matrix 2\n"); for(i=0;i<mt[2];i++) { printf("\n"); for(j=0;j<mt[3];j++) { printf(" %d ",b[i][j]); } } printf("\nMultiplying........\n"); for(i=0;i<mt[0];i++) for(j=0;j<mt[3];j++) { c[i][j]=0; for(k=0;k<mt[1];k++) c[i][j]+=a[i][k]*b[k][j]; } printf("\nResult:\n") ; for(i=0;i<mt[0];i++) { printf("\n"); for(j=0;j<mt[3];j++) { printf(" %d ",c[i][j]); } } printf("\n"); send(sock,&c,sizeof(c),0); close(sock); close(s); }
Output:
Terminal 1: (Server)
nn@linuxmint ~ $ gcc ms.c -o s nn@linuxmint ~ $ ./s Received Matrix 1 1 1 1 1 Received Matrix 2 2 2 2 2 Multiplying........ Result: 4 4 4 4 nn@linuxmint ~ $Terminal 2: (Client)
nn@linuxmint ~ $ gcc mc.c -o c nn@linuxmint ~ $ ./c Enter order of matrix 1:2 2 Enter order of matrix 2:2 2 Enter Elements for matrix 1: 1 1 1 1 Enter Elements for matrix 2: 2 2 2 2 Result: 4 4 4 4 nn@linuxmint ~ $
rrrrrrrrrrrrrrrr
ReplyDeletesalaar
ReplyDeletesarvajiit manikandan
ReplyDeletenot runing
ReplyDeleteabilamol pp
ReplyDelete