Sie sind auf Seite 1von 5

Program: server: #include<stdio.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.

h> int i; struct addr { char phy[20]; char log[20]; }p[5]; int ain!int argc"char## arg$% { int sock"nsd"n; int len; print&!'(n)nter the physical address and logical address(n'%; &or!i*+;i<*2;i,,% { scan&!'-s-s'".p[i].phy".p[i].log%; } struct sockaddr/in ser$addr"cliaddr; char 0u&&[+0]"str[+00]; sock*socket!12/34)5"6789/65:)1;"0%; i&!sock>0% print&!'(n6ocket is created'%; 0<ero!.ser$addr"si<eo&!ser$addr%%; ser$addr.sin/&a ily*12/34)5; ser$addr.sin/port*htons!2=>?%; ser$addr.sin/addr.s/addr*htons!341@@:/14A%; n*0ind!sock"!struct sockaddr#%.ser$addr"si<eo&!ser$addr%%; i&!n**0% print&!'(nBinded Cith address(n'%; listen!sock"5%; len*si<eo&!cliaddr%; nsd*accept!sock"!struct sockaddr#%.cliaddr".len%; i&!nsdD*E+% print&!'(n8onnection is accepted(n'%; print&!'(nFhysical address(tGogical address'%; &or!i*+;i<*5;i,,% print&!'(n-s(t-s'"p[i].phy"p[i].log%; rec$!nsd"0u&&"20"0%; &or!i*+;i<*2;i,,%

{ i&!strc p!p[i].log"0u&&%**0% { print&!'(n2ound'%; send!nsd"p[i].phy"H0"0%; } else { i&!strc p!p[i].phy"0u&&%**0% { print&!'(n2ound'%; send!nsd"p[i].log"H0"0%; } } } close!sock%; }

client: #include<stdio.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> int ain!int argc" char ##arg$% { int sock&d"nsd"n; int len"choice; //ti e/t ti"ti e/ti; struct sockaddr/in ser$addr"cliaddr; char 0u&&[+00]"str[+00]; sock&d*socket!12/34)5"6789/65:)1;"0%; 0<ero!.ser$addr"si<eo&!ser$addr%%; ser$addr.sin/&a ily*12/34)5; ser$addr.sin/port*htons!2=>?%; ser$addr.sin/addr.s/addr*htons!341@@:/14A%; nsd*connect!sock&d"!struct sockaddr#%.ser$addr"si<eo&!ser$addr%%; i&!nsdD*E+% print&!'(n8onnected'%; print&!'(n+.1:F(n2.:1:F(n)nter your choice(n'%; scan&!'-d'".choice%; sCitch!choice% { case +I print&!'(n)nter the Fhysical address(n'%; scan&!'-s'"0u&&%; send!sock&d"0u&&"20"0%; rec$!sock&d"0u&&"20"0%; print&!'(nGogical 1ddress isI-s'"0u&&%; 0reak; case 2I print&!'(n)nter the Gogical address(n'%; scan&!'-s'"0u&&%; send!sock&d"0u&&"20"0%; rec$!sock&d"0u&&"20"0%; print&!'(nFhysical 1ddress isI-s'"0u&&%; 0reak; close!sock&d%; } }

Output: Server: )nter the physical address and logical address +2=> +2.+2.0 2=> >J.0J.J 6ocket is created Binded Cith address 8onnection is accepted Fhysical address +2=> +2.+2.0 2=> >J.0J.J Gogical address

2ound [userKlocalhost @ocu ents]L ./a.out )nter the physical address and logical address +2=> +2.+2.0 2=> >J.0J.J 6ocket is created Binded Cith address 8onnection is accepted Fhysical address +2=> 2=> 2ound Gogical address +2.+2.0 >J.0J.J

client: userKlocalhost @ocu ents]L cc arpcli.c [userKlocalhost @ocu ents]L ./a.out +.1:F 2.:1:F )nter your choice + )nter the Fhysical address +2=> Gogical 1ddress isI+2.+2.0 8onnected +.1:F 2.:1:F )nter your choice 2 )nter the Gogical address >J.0J.J Fhysical address is 2=> 8onnected

Das könnte Ihnen auch gefallen