0% found this document useful (0 votes)
48 views33 pages

CN Manual

The document discusses implementing various data link layer framing methods and coding techniques including character stuffing and bit stuffing. It also provides programs to implement character stuffing and perform CRC calculations on a data set using three polynomials. Finally, it includes a program implementing the Dijkstra's algorithm to find the shortest path through a graph.

Uploaded by

Su rekha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views33 pages

CN Manual

The document discusses implementing various data link layer framing methods and coding techniques including character stuffing and bit stuffing. It also provides programs to implement character stuffing and perform CRC calculations on a data set using three polynomials. Finally, it includes a program implementing the Dijkstra's algorithm to find the shortest path through a graph.

Uploaded by

Su rekha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

1.

Implementt
hedatalinklayerfr
amingmethodssuchas
charact
erst
uff
ingandbitst
uffi
ng.
Cprogram t
oimplementcharact
erstuf
fi
ng.
Pr
ogr
am:

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<coni
o.h>

#i
ncl
ude<st
ri
ng.
h>

v
oidmai
n()

i
nti
=0,
j
=0,
n,
pos;

chara[
20]
,
b[50]
,
ch;

pr
int
f("
\nent
erst
ri
ng:
")
;

scanf
("%s"
,&a)
;

n=st
rl
en(
a);

b[
0]='
D';

b[
1]='
L'
;

b[
2]='
E'
;

b[
3]='
S'
;

b[
4]='
T'
;

b[
5]='
X'
;

j
=6;

whi
l
e(i
<n)
;

i
f(
a[i
]=='
D'&&a[
i+1]
=='
L'
&&a[
i+2]
=='
E'
)

{
b[
j]
='
D';

b[
j+1]
='
L'
;

b[
j+2]
='
E'
;

j
=j+3;

b[
j]
=a[
i]
;

i
++;

j
++;

el
se

b[
j]
=a[
i]
;

i
++;

j
++;

b[
j]
='
D';

b[
j+1]
='
L'
;

b[
j+2]
='
E'
;

b[
j+3]
='
E'
;

b[
j+4]
='
T'
;

b[
j+5]
='
X'
;

b[
j+6]
='
\0'
;

pr
int
f("
\nf
rameaf
terst
uff
ing:
")
;

pr
int
f("
%s"
,b)
;

}
OUTPUT:

Cpr
ogr
am f
orbi
tst
uff
ing
Pr
ogr
am:

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<coni
o.h>

#i
ncl
ude<st
ri
ng.
h>

v
oidmai
n()

i
nta[
20]
,
b[30]
,
i,
j,
k,
count
,n;

pr
int
f("
\nent
erf
ramesi
ze:
")
;

scanf
("%d"
,&n)
;

pr
int
f("
\nent
erf
ramei
nthef
orm of0and1:
")
;

f
or(
i=0;
i
<n;
i
++)

scanf
("%d"
,&a[
i]
);

i
=0;

count
=1;

j
=0;

whi
l
e(i
<n)

{
i
f(
a[i
]==1)

b[
j]
=a[
i]
;

f
or(
k=i
+1;
a[k]
==1&k<n&&count
<5;
k++)

j
++;

b[
j]
=a[
k];

count
++;

i
f(
count
==5)

j
++;

b[
j]
=0;

i
=k;

el
se

b[
j]
=a[
i]
;

i
++;

j
++;

pr
int
f("
\naf
terbi
tst
uff
ing:
")
;

pr
int
f("
01111110 "
);

f
or(
i=0;
i
<j;
i
++)
pr
int
f("
%d"
,b[
i]
);

pr
int
f(" 01111110"
);

get
ch(
);

OUTPUT:

2.
Implementonadatasetofchar
act
erst
hethreeCRC
pol
ynomial
s— CRC12,CRC16and CRCCCIP.
Pr
ogr
am:

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<coni
o.h>

#i
ncl
ude<st
ri
ng.
h>

v
oidmai
n(){

i
nti
,
j,
key
len,
msgl
en;

chari
nput
[100]
,key
[30]
,
temp[
30]
,
quot
[100]
,
rem[
30]
,
key
1[30]
;

cl
rscr
();

pr
int
f("
Ent
erDat
a:"
);

get
s(i
nput
);

pr
int
f("
Ent
erKey
:")
;
get
s(key
);

key
len=st
rl
en(
key
);

msgl
en=st
rl
en(
input
);

st
rcpy
(key
1,key
);

f
or(
i=0;
i
<key
len-
1;i
++){

i
nput
[msgl
en+i
]='
0'
;

f
or(
i=0;
i
<key
len;
i
++)

t
emp[
i]
=input
[i
];

f
or(
i=0;
i
<msgl
en;
i
++){

quot
[i
]=t
emp[
0];

i
f(
quot
[i
]=='
0'
)

f
or(
j=0;
j
<key
len;
j
++)

key
[j
]='
0'
;el
se

f
or(
j=0;
j
<key
len;
j
++)

key
[j
]=key
1[j
];

f
or(
j=key
len-
1;j
>0;
j
--){

i
f(
temp[
j]
==key
[j
])

r
em[
j-
1]='
0'
;el
se

r
em[
j-
1]='
1'
;

r
em[
key
len-
1]=i
nput
[i
+key
len]
;

st
rcpy
(temp,
rem)
;

st
rcpy
(rem,
temp)
;

pr
int
f("
\nQuot
ienti
s")
;
f
or(
i=0;
i
<msgl
en;
i
++)

pr
int
f("
%c"
,quot
[i
])
;

pr
int
f("
\nRemai
nderi
s")
;

f
or(
i=0;
i
<key
len-
1;i
++)

pr
int
f("
%c"
,r
em[
i]
);

pr
int
f("
\nFi
nal
dat
ais:
");

f
or(
i=0;
i
<msgl
en;
i
++)

pr
int
f("
%c"
,i
nput
[i
])
;

f
or(
i=0;
i
<key
len-
1;i
++)

pr
int
f("
%c"
,r
em[
i]
);

get
ch(
);

Out
put
:

3.
Impl
ementDi
jkstr
asal
gor
it
hm t
ocomput
etheShor
test
pat
hthr
oughagraph.
progr
am:
#i
nclude<stdi
o.h>
#i
nclude<coni
o.h>
#defi
neINFINITY9999
#defi
neMAX10

v
oiddi
j
kst
ra(
intG[
MAX]
[MAX]
,
intn,
i
ntst
art
node)
;

i
ntmai
n()
{
i
ntG[MAX] [MAX],i
,
j,
n,u;
pri
ntf
("Enterno.ofverti
ces:"
);
scanf
("%d" ,
&n);
pri
ntf
("\nEntert
headj acencymat
ri
x:
\n"
);

f
or(
i=0;i
<n;i
++)
for
(j=0;
j<n;
j++)
scanf
("%d"
,&G[
i]
[j
])
;

pri
ntf
("\
nEntert
hest
art
ingnode:
")
;
scanf
("%d"
,&u);
dij
kst
ra(G,
n,
u);

r
etur
n0;
}

v
oiddi
j
kst
ra(
intG[
MAX]
[MAX]
,
intn,
i
ntst
art
node)
{

i
ntcost
[MAX]
[MAX],
dist
ance[
MAX] ,
pred[MAX];
i
ntvi
sit
ed[
MAX],
count
,mindi
stance,
nextnode,
i
,j
;

/
/pred[]storesthepr
edecessorofeachnode
/
/countgi vesthenumberofnodesseensof ar
/
/createt hecostmatr
ix
f
or(
i=0;i<n;i
++)
for(j
=0;j<n;
j++)
i
f(G[
i]
[j
]==0)
cost[
i]
[j
]=I
NFINITY;
el
se
cost[
i]
[j
]=G[i
][
j]
;

/
/ini
ti
ali
zepr ed[],
distance[
]andvi
sit
ed[
]
f
or(i
=0;i
<n;i++)
{
dist
ance[ i
]=cost[start
node][
i]
;
pred[i
]=startnode;
visi
ted[i
]=0;
}

di
stance[
startnode]=0;
vi
sit
ed[st
artnode]=1;
count=1;

whi
l
e(count<n-
1)
{
mi
ndi
stance=I
NFINI
TY;

/
/next
nodegi
vest
henodeatmi
nimum di
stance
f
or(
i=0;
i
<n;
i
++)
i
f(
distance[i]
<mindi
stance&&!v
isi
ted[
i]
)
{
mindistance=di
stance[
i]
;
nextnode=i;
}

/
/checki
fabet
terpat
hexi
stst
hroughnext
node

v
isi
ted[
nextnode]=1;
f
or(
i=0;
i<n;
i++)
if(
!vi
sit
ed[i
])
i
f(mi
ndist
ance+cost
[next
node]
[i
]<di
stance[
i]
)
{

di
stance[
i]
=mi
ndi
stance+cost
[next
node]
[i
];
pr
ed[
i]
=next
node;
}
count
++;
}

/
/pri
ntthepathanddi
stanceofeachnode
f
or(
i=0;
i
<n;i++)
if
(i
!=st
artnode)
{
pri
ntf
("\
nDist
anceofnode%d=%d"
,i
,
dist
ance[
i]
);
pri
ntf
("\
nPath=%d"
,i
);

j
=i;
do
{
j
=pred[j]
;
pri
ntf
("<-%d",
j)
;
}whi
le(
j!
=startnode);
}
}

out
put
:
4.Takeanexamplesubnetgraphwithweightsindi
cat
ing
del
aybetweennodes.Now obtai
nRoutingtablearteach
nodeusi
ngdist
ancevect
orr
outingal
gori
thm.
Pr
ogr
am:

#i
ncl
ude<coni
o.h>

#i
ncl
ude<st
dio.
h>

st
ructnode{

i
ntdi
st[
20]
;

i
ntf
rom[
20]
;

}r
out
e[10]
;

i
ntmai
n()

i
ntdm[
20]
[20]
,no,
i
,j
,k,
fl
ag;

cl
rscr
();
pr
int
f("
\nEnt
ernoofnodes:
")
;

scanf
("%d"
,&no)
;

pr
int
f("
\nEnt
ert
hedi
stancemat
ri
x:
")
;

f
or(
i=0;
i<no;
i++){

f
or(
j=0;
j<no;
j++){

scanf
("%d"
,&dm[
i]
[j
])
;

dm[
i]
[i
]=0;

r
out
e[i
].
dist
[j
]=dm[
i]
[j
];

r
out
e[i
].
fr
om[
j]=j
;

do{

f
lag=0;

f
or(i
=0;
i<no;
i++){

f
or(
j=0;
j<no;
j++){

f
or(k=0;
k<no;
k++){

i
f((
rout
e[i
].
dist
[j
])>(
rout
e[i
].
dist
[k]+r
out
e[k]
.di
st[
j]
)){

r
out
e[i
].
dist
[j
]=r
out
e[i
].
dist
[k]+r
out
e[k]
.di
st[
j]
;

r
out
e[i
].
fr
om[
j]=k;

f
lag=1;

}
}whi
l
e(f
lag)
;

f
or(
i=0;
i<no;
i++){

pr
int
f("
\nRout
ingt
abl
eofr
out
er%d:
",i
+1)
;

pr
int
f("
\nTo\
tNext
\tCost
")
;

f
or(
j=0;
j<no;
j++)

i
f(
i!
=j)

pr
int
f("
\n%d\
t%d\
t\t
%d\
n",
j
+1,
rout
e[i
].
fr
om[
j]
+1,
rout
e[i
].
dist
[j
])
;

r
etur
n0;

OUTPUT:
5.Takeanexampl
esubnetofhost
s.Obt
ainbr
oadcastt
ree
forit
.
Pr
ogr
am:
#include<st dio.h>
#include<coni o.
h>
voidadj (i
nt);
i
nta[ 10][10],
n;
voidmai n(
)
{
i
nti ,j,
root;
clr
scr ();
print f("
enternoofnodes: "
);
scanf ("
%d" ,&n);
print f("
\nent eradjacencymatr
ix:
")
;
for(i=1;i<=n;i++)
for (j=1;j
<=n; j
++)
scanf ("
%d" ,
&a[i
][j
])
;
print f("
\nent erroot:
");
scanf ("
%d" ,&root);
adj( root);
get ch( );
}
v
oi dadj (
intk)
{
i
nti ,
j;
printf
("\nBr oadcasttree:"
);
printf
("\n\t%d\ n"
,k)
;
for(j
=1;j<=n;j++)
{
if((
a[k][j
]==1)||
(a[
j]
[k]==1))
pri
ntf("%d\ t"
,j
);
}
printf
("\n");
for(i
=1; i
<=n;i++)
if((
a[k][i
]==0)&&(a[i
][k]
==0)&&(
i!
=k)
)
pri
ntf("%d\ t"
,i
);
}

Out
put
:

6.
Progr
amst
oimpl
ementer
rorcor
rect
ionanddet
ect
ion.
Program:
#incl
ude<st di
o.h>
#incl
ude<mat h.h>
#incl
ude<conio.h>
i
ntinput[32]
;
i
ntdat a[
32],
datarec[
32]
;
i
ntham_ calc(i
nt,
int)
;
voidmain()
{
  i
ntn, i
,p_n=0, c_l
,
j,k,
c,er
ror_pos;
  clr
scr();
  pri
ntf("Enterthelengthoft heDatabi
t:"
);
  scanf("%d" ,
&n);
  pri
ntf("EntertheDat abit:
\n")
;
  for(
i=0;i<n;
i++)
  {
scanf("%d" ,
&input
[i
]);
  }

  i
=0;
  whil
e(n>(
int
)pow(
2,i
)-
(i
+1)
)
  {
p_n++;
i
++;
  }
  c_l=p_n+n;

  j
=k=0;
  f
or(i
=0;
i
<c_
l;
i++)
  {

i
f(i==( (int)
pow( 2,k)-1)
)
{
  dat a[i]
=0;
  k++;
}
else
{
  dat a[i]
=input[j];
  j++;
}
  }
  for (i=0;i
<p_ n;i++)
  {
i
ntposi ti
on=( int)pow(2,i
);
i
ntv alue=ham_ calc(posi
tion,c_l
);
dat a[posi t
ion-1] =value;
  }
  pr intf("\
nNoofpar i
tybi
tst obeadded:%d",
p_n)
;
  pr intf("\
nTot al noofbi t
s:%d" ,
c_l
);
  pr intf("\
nHammi ngcodef ordatabiti
s:"
);
  for (i=0;i
<c_ l
;i++)
printf( "
%d" ,data[i]
);
  pr intf("\
n" )
;
  printf("Entert her ecei veddat abit:
\n");
  for(i
=0; i<c_ l
;i++)
scanf (
"%d" ,
&dat ar ec[ i
]);
err
or _pos=0;
  for(i
=0; i<p_ n;i++)
  {
i
ntposi tion=( int)pow( 2, i
);
i
ntv alue=ham_ cal c(posi t
ion,c_l
);
i
f(value! =0)
  error_pos+=posi tion;
  }
  if(
error _pos==1)
pri
ntf (
"Ther ecei v eddat aWor di scorrect.
\n"
);
  else
pri
ntf (
"Error  
atbi tposi tion:%d\ n",
err
or _pos)
;
pri
ntf (
"\nDat asent: ");
for(i
=0;i<c_ l
;i++)
  printf("%d" ,
dat a[i]);
pri
ntf (
"\nDat ar ecei ved: "
);
for(i
=0;i<c_ l
;i++)
  printf("%d" ,
dat ar ec[i]
);
pri
ntf (
"\nCor r ectmessagei s\
n");
for(i=0;i
<c_ l;i
++)
{
  printf("%d" ,
dat a[i]);
 }
}
i
ntham_ calc( intposi ti
on,intc_ l
)
{
  intcount =0, i
,j;
  i=posi ti
on- 1;
  whi l
e(i<c_ l)
  {
    for(j=i;j
<i+posi tion;j++)
    {
      if(dat a[ j
]==dat arec[j]
)
         count ++;
    }
    i=i+2* posi t
ion;
  }
  if(
count %2==0)
    retur n0;
  else
    retur n1;
}
Out
put
:

7.
Progr
amsf
orI
Paddr
essconv
ersi
onf
unct
ion
pr
ogr
am:

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<sy
s/socket
.h>

#i
ncl
ude<st
dli
b.h>

#i
ncl
ude<ar
pa/
inet
.h>

#def
ineSERV_
PORT9002

i
ntmai
n()

charst
r[
INET_
ADDRSTRLEN]
,
*st
r1,
*st
r2;

st
ructsockaddr
_inser
ver
;

pr
int
f("
Test
ingi
net
_pt
onandi
neti
net
_nt
op\
n")
;
i
net
_pt
on(
AF_
INET,
"192.
0.2.
33"
,&(
ser
ver
.si
n_addr
));

i
net
_nt
op(
AF_
INET,
&(ser
ver
.si
n_addr
),st
r,I
NET_
ADDRSTRLEN)
;

pr
int
f("
%s\
n",
str
);/
/pr
int
s"192.
0.2.
33"

bzer
o(&st
r1,
si
zeof
(st
r1)
);

bzer
o(&ser
ver
,si
zeof
(ser
ver
));

pr
int
f("
Test
ingi
net
_nt
oaandi
net
_at
on\
n")
;

i
net
_at
on(
"192.
168.
1.1"
,&(
ser
ver
.si
n_addr
));

st
r1=i
net
_nt
oa(
ser
ver
.si
n_addr
);

pr
int
f("
%s\
n",
str
1);

bzer
o(&st
r1,
si
zeof
(st
r1)
);

bzer
o(&ser
ver
,si
zeof
(ser
ver
));

pr
int
f("
Test
ingi
net
_addr
\n"
);

ser
ver
.si
n_addr
.s_
addr
=inet
_addr
("192.
2.2.
2")
;

st
r2=i
net
_nt
oa(
ser
ver
.si
n_addr
);

pr
int
f("
%s\
n",
str
2);

out
put
:

-
sh-
4.1$v
iipco.
c

-
sh-
4.1$cc-
oipcoi
pco.
c

-
sh-
4.1$.
/i
pco

Test
ingi
net
_pt
onandi
neti
net
_nt
op

192.
0.2.
33
Test
ingi
net
_nt
oaandi
net
_at
on

192.
168.
1.1

Test
ingi
net
_addr

192.
2.2.
2

8.Cli
entserv
erappl
icat
ionsusingi
nterprocess
communi cati
onandsynchronousmechanisms:(a)
FIFO
(b)Messagequeues (c)Sharedmemor y

(
a)Fi
fo

ser
ver
:

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<ct
ype.
h>

#i
ncl
ude<sy
s/t
ypes.
h>

#i
ncl
ude<sy
s/st
at.
h>

#i
ncl
ude<f
cnt
l.
h>

#i
ncl
ude<st
dli
b.h>

#i
ncl
ude<st
ri
ng.
h>

mai
n()

i
ntwr
fd,
rdf
d,n,
d,
ret
_val
,
count
;

charbuf
[50]
;/*
creat
ethef
ir
stnamedpi
pe*
/

r
et_
val
=mkf
if
o("
np1"
,0666)
;/*
creat
ethesecondnamedpi
pe*
/

r
et_
val
=mkf
if
o("
np2"
,0666)
;/*
opent
hef
ir
stnamedpi
pef
orr
eadi
ng*
/

r
dfd=open(
"np1"
,O_
RDONLY)
;/*
opent
hesecondnamedpi
pef
or

wr
it
ing*
/
wr
fd=open(
"np2"
,O_
WRONLY)
;/*
readf
rom t
hef
ir
stpi
pe*
/

n=r
ead(
rdf
d,buf
,50)
;buf
[n]
='
\0'
;//
endofl
i
ne

pr
int
f("
ful
ldupl
exser
ver
:r
eadf
rom t
hepi
pe:
%s\
n",
buf
);/
*conv
ertt
hest
ri
ngt
oupper

cl
ass*
/

count
=0;

whi
l
e(count
<n)

buf
[count
]=t
oupper
(buf
[count
])
;

count
++;

}/
*wr
it
etheconv
ert
orst
ri
ngbackt
osecondpi
pe*
/

wr
it
e(wr
fd,
buf
,st
rl
en(
buf
));

cl
ient
:

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<sy
s/t
ypes.
h>

#i
ncl
ude<sy
s/st
at.
h>

#i
ncl
ude<f
cnt
l.
h>

#i
ncl
ude<st
dli
b.h>

#i
ncl
ude<st
ri
ng.
h>

#i
ncl
ude<ct
ype.
h>

mai
n()

i
ntwr
fd,
rdf
d,n;

charbuf
[50]
,
li
ne[
50]
;/*
opent
hef
ir
stnamedpi
pef
orwr
it
ing*
/

wr
fd=open(
"np1"
,O_
WRONLY)
;/*
creat
ethesecondnamedpi
pef
orr
eadi
ng

*
/
r
dfd=open(
"np2"
,O_
RDONLY)
;/*
wri
tet
othepi
pe*
/

pr
int
f("
ent
erl
i
neoft
ext
");

get
s(l
i
ne)
;

wr
it
e(wr
fd,
l
ine,
str
len(
li
ne)
);/
*readf
rom t
hepi
pe*
/

n=r
ead(
rdf
d,buf
,50)
;

buf
[n]
='
\0'
;//
endofl
i
ne

pr
int
f("
ful
ldupl
excl
i
ent
:r
eadf
rom t
hepi
pe:
%s\
n",
buf
);

out
put
:

ser
ver
:

-
sh-
4.1$.
/msgsnd

f
ull
dupl
exser
ver
:r
eadf
rom t
hepi
pe:
hel
l
o

cl
i
ent
:

-
sh-
4.1$.
/msgr
cv

ent
erl
i
neoft
ext
:hel
l
o

f
ull
dupl
excl
i
ent
:r
eadf
rom t
hepi
pe:
HELLO

(
b)MessageQueue

ser
ver
:

#i
ncl
ude<sy
s/t
ypes.
h>

#i
ncl
ude<sy
s/msg.
h>

#i
ncl
ude<sy
s/i
pc.
h>

#i
ncl
ude<st
ri
ng.
h>

#i
ncl
ude<st
dio.
h>

i
ntmai
n()

{
key
_ti
pckey
;

i
ntmq_
id;

st
ruct

l
ongt
ype;

chart
ext
[100]
;

}my
msg;

i
pckey
=ft
ok(
"/t
mp/
foo"
,42)
;

pr
int
f("
Mykeyi
s%d\
n",
i
pckey
);

mq_
id=msgget
(i
pckey
,I
PC_
CREAT|
0666)
;

pr
int
f("
Messagei
dent
if
ieri
s%d\
n",
mq_
id)
;

memset
(my
msg.
text
,0,
100)
;

st
rcpy
(my
msg.
text
,"
Hel
l
owor
ld!
")
;

my
msg.
type=1;

msgsnd(
mq_
id,
&my
msg,
si
zeof
(my
msg)
,0)
;

cl
ient
:

#i
ncl
ude<sy
s/t
ypes.
h>

#i
ncl
ude<sy
s/msg.
h>

#i
ncl
ude<sy
s/i
pc.
h>

#i
ncl
ude<st
ri
ng.
h>

#i
ncl
ude<st
dio.
h>

i
ntmai
n()

key
_ti
pckey
;

i
ntmq_
id;
st
ruct

l
ongt
ype;

chart
ext
[100]
;

}
mymsg;

i
ntr
ecei
ved;

i
pckey
=ft
ok(
"/t
mp/
foo"
,42)
;

pr
int
f("
Mykeyi
s%d\
n",
i
pckey
);

mq_
id=msgget
(i
pckey
,0)
;

pr
int
f("
Messagei
dent
if
ieri
s%d\
n",
mq_
id)
;

r
ecei
ved=msgr
cv(
mq_
id,
&my
msg,
si
zeof
(my
msg)
,0,
0);

pr
int
f("
%s(
%d)
\n"
,my
msg.
text
,r
ecei
ved)
;

out
put
:

-
sh-
4.1$cc-
omsgsermsgser
ver
.c

-
sh-
4.1$cc-
omsgcl
imsgcl
i
ent
.c

-
sh-
4.1$.
/msgser

Mykeyi
s-1

Messagei
dent
if
ieri
s98304

-
sh-
4.1$.
/msgcl
i

Mykeyi
s-1

Messagei
dent
if
ieri
s98304

Hel
l
owor
ld!(
112)

(
c)Shar
edMemor
y

ser
ver
:
#i
ncl
ude<sy
s/t
ypes.
h>

#i
ncl
ude<sy
s/i
pc.
h>

#i
ncl
ude<sy
s/shm.
h>

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<st
dli
b.h>

#def
ineMAXSI
ZE27

v
oiddi
e(char*
s)

per
ror
(s)
;

exi
t(
1);

i
ntmai
n()

charc;

i
ntshmi
d;

key
_tkey
;

char*
shm,
*s;

key
=5678;

i
f(
(shmi
d=shmget
(key
,MAXSI
ZE,
I
PC_
CREAT|
0666)
)<0)

di
e("
shmget
");

i
f(
(shm=shmat
(shmi
d,NULL,
0))
==(
char*
)-1)

di
e("
shmat
");

s=shm;

f
or(
c='
a'
;c<='
z'
;c++)

*
s++=c;

whi
l
e(*
shm!
='
*'
)
sl
eep(
1);

exi
t(
0);

cl
ient
:

#i
ncl
ude<sy
s/t
ypes.
h>

#i
ncl
ude<sy
s/i
pc.
h>

#i
ncl
ude<sy
s/shm.
h>

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<st
dli
b.h>

#def
ineMAXSI
ZE27

v
oiddi
e(char*
s)

per
ror
(s)
;

exi
t(
1);

i
ntmai
n()

i
ntshmi
d;

key
_tkey
;

char*
shm,
*s;

key
=5678;

i
f(
(shmi
d=shmget
(key
,MAXSI
ZE,
0666)
)<0)

di
e("
shmget
");

i
f(
(shm=shmat
(shmi
d,NULL,
0))
==(
char*
)-1)

di
e("
shmat
");

f
or(
s=shm;
*s!
='
\0'
;
s++)
put
char
(*s)
;

put
char
('
\n'
);

*
shm='
*'
;

exi
t(
0);

out
put
:

-
sh-
4.1$cc-
ossshmser
ver
.c

-
sh-
4.1$cc-
oscshmcl
i
ent
.c

-
sh-
4.1$.
/ss

-
sh-
4.1$.
/sc

abcdef
ghi
j
klmnopqr
stuv
wxy
z

9.
Connect
ionor
ient
edCl
ientser
verappl
icat
ionswi
thTCP
ser
ver
:

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<net
db.
h>

#i
ncl
ude<net
inet
/i
n.h>

#i
ncl
ude<st
dli
b.h>

#i
ncl
ude<st
ri
ng.
h>

#i
ncl
ude<sy
s/socket
.h>

#i
ncl
ude<sy
s/t
ypes.
h>

#def
ineMAX80

#def
inePORT8080

#def
ineSAst
ructsockaddr

v
oidf
unc(
intsockf
d)

charbuf
f[
MAX]
;
i
ntn;

f
or(
;;
){

bzer
o(buf
f,MAX)
;

r
ead(
sockf
d,buf
f,si
zeof
(buf
f))
;

pr
int
f("
From cl
i
ent
:%s\
tTocl
i
ent:
",buf
f);

bzer
o(buf
f,MAX)
;

n=0;

whi
l
e((
buf
f[
n++]=get
char
())!
='\
n')

wr
it
e(sockf
d,buf
f,si
zeof
(buf
f))
;

i
f(st
rncmp(
"exi
t"
,buf
f,4)==0){

pr
int
f("
Ser
verExi
t.
..
\n"
);

br
eak;

i
ntmai
n()

i
ntsockf
d,connf
d,l
en;

st
ructsockaddr
_inser
vaddr
,cl
i
;

sockf
d=socket
(AF_
INET,
SOCK_
STREAM,
0);

i
f(sockf
d==-
1){

pr
int
f("
socketcr
eat
ionf
ail
ed.
..
\n"
);

exi
t(
0);

el
se
pr
int
f("
Socketsuccessf
ull
ycr
eat
ed.
.\
n")
;

bzer
o(&ser
vaddr
,si
zeof
(ser
vaddr
));

ser
vaddr
.si
n_f
ami
l
y=AF_
INET;

ser
vaddr
.si
n_addr
.s_
addr=ht
onl
(I
NADDR_
ANY)
;

ser
vaddr
.si
n_por
t=ht
ons(
PORT)
;

i
f((
bind(
sockf
d,(
SA*
)&ser
vaddr
,si
zeof
(ser
vaddr
)))!
=0){

pr
int
f("
socketbi
ndf
ail
ed.
..
\n"
);

exi
t(
0);

el
se

pr
int
f("
Socketsuccessf
ull
ybi
nded.
.\
n")
;

i
f((
li
sten(
sockf
d,5)
)!=0){

pr
int
f("
List
enf
ail
ed.
..
\n"
);

exi
t(
0);

el
se

pr
int
f("
Ser
verl
i
steni
ng.
.\
n")
;

l
en=si
zeof
(cl
i
);

connf
d=accept
(sockf
d,(
SA*
)&cl
i
,&l
en)
;

i
f(connf
d<0){

pr
int
f("
ser
veraccceptf
ail
ed.
..
\n"
);

exi
t(
0);

el
se

pr
int
f("
ser
veraccceptt
hecl
i
ent
..
.\
n")
;

f
unc(
connf
d);
cl
ose(
sockf
d);

cl
ient:
#i
nclude<net
db.
h>

#i
ncl
ude<st
dio.
h>

#i
ncl
ude<st
dli
b.h>

#i
ncl
ude<st
ri
ng.
h>

#i
ncl
ude<sy
s/socket
.h>

#def
ineMAX80

#def
inePORT8080

#def
ineSAst
ructsockaddr

v
oidf
unc(
intsockf
d)

charbuf
f[
MAX]
;

i
ntn;

f
or(
;;
){

bzer
o(buf
f,si
zeof
(buf
f))
;

pr
int
f("
Ent
ert
hest
ri
ng:
");

n=0;

whi
l
e((
buf
f[
n++]=get
char
())!
='\
n')

wr
it
e(sockf
d,buf
f,si
zeof
(buf
f))
;

bzer
o(buf
f,si
zeof
(buf
f))
;

r
ead(
sockf
d,buf
f,si
zeof
(buf
f))
;

pr
int
f("
From Ser
ver:
%s"
,buf
f);
i
f((
str
ncmp(
buf
f,"
exi
t"
,4)
)==0){

pr
int
f("
Cli
entExi
t.
..
\n"
);

br
eak;

i
ntmai
n()

i
ntsockf
d,connf
d;

st
ructsockaddr
_inser
vaddr
,cl
i
;

sockf
d=socket
(AF_
INET,
SOCK_
STREAM,
0);

i
f(sockf
d==-
1){

pr
int
f("
socketcr
eat
ionf
ail
ed.
..
\n"
);

exi
t(
0);

el
se

pr
int
f("
Socketsuccessf
ull
ycr
eat
ed.
.\
n")
;

bzer
o(&ser
vaddr
,si
zeof
(ser
vaddr
));

ser
vaddr
.si
n_f
ami
l
y=AF_
INET;

ser
vaddr
.si
n_addr
.s_
addr=i
net
_addr
("127.
0.0.
1")
;

ser
vaddr
.si
n_por
t=ht
ons(
PORT)
;

i
f(connect
(sockf
d,(
SA*
)&ser
vaddr
,si
zeof
(ser
vaddr
))!
=0){

pr
int
f("
connect
ionwi
tht
heser
verf
ail
ed.
..
\n"
);

exi
t(
0);

}
el
se

pr
int
f("
connect
edt
otheser
ver
..
\n"
);

f
unc(
sockf
d);

cl
ose(
sockf
d);

out
put
:

10.
Connect
ionl
essCl
i
entser
verappl
i
cat
ionswi
thUDP.
Pr
ogr
am:
Serv
er :
#i
nclude<st di o. h>
#i
nclude<st dl ib.h>
#i
nclude<uni st d.h>
#i
nclude<st r i
ng. h>
#i
nclude<sy s/ types. h>
#i
nclude<sy s/ socket .
h>
#i
nclude<ar pa/ inet .h>
#i
nclude<net inet /i
n.h>
#definePORT 8080
#defineMAXLI NE1024
i
ntmai n(){
i
ntsockf d;
charbuf fer [MAXLI NE] ;
char* hello=" Hel lof rom ser ver ";
str
uctsockaddr _inser vaddr ,
cl iaddr;
i
f((sockf d=socket (AF_ INET, SOCK_ DGRAM,0))<0){
perr or( "socketcr eationf ailed")
;
exit(EXI T_ FAI LURE) ;
}
memset (&ser vaddr ,0,sizeof(ser vaddr))
;
memset (&cl iaddr ,0, sizeof (
cliaddr )
);
servaddr .sin_ fami ly =AF_ I
NET; /
/IPv4
servaddr .sin_ addr .s_addr=I NADDR_ ANY;
servaddr .sin_ por t=ht ons( PORT)
i
f(bi nd(sockf d, (constst ructsockaddr* )
&ser
vaddr
,
si zeof (ser v
addr ))<0)
{
perr or( "bindf ail
ed" );
exit(EXI T_ FAI LURE) ;
}

i
ntlen,n;
n=r ecvfr
om( sockf d,(char*)buffer,MAXLINE,
MSG_ WAITALL, (structsockaddr*)&cli
addr
,
&len);
buff
er[n]=' \
0';
pri
ntf(
"Cli
ent: %s\n",buff
er);
sendto(sockfd, (constchar*)hello,str
len(
hell
o),
MSG_ CONFI RM, (conststructsockaddr* )&cl
iaddr
,
len);
pri
ntf(
"Hel l
omessagesent .
\n");

r
etur
n0;
}

Cl
ient
:
#i
ncl
ude<st dio. h>
#i
ncl
ude<st dlib.h>
#i
ncl
ude<uni st d.h>
#i
ncl
ude<st ri
ng. h>
#i
ncl
ude<sy s/ types. h>
#i
ncl
ude<sy s/ socket .
h>
#i
ncl
ude<ar pa/ inet .h>
#i
ncl
ude<net inet /
in.h>
#def
inePORT 8080
#def
ineMAXLI NE1024
i
ntmain(){
intsockf d,len,n;
charbuf f
er [MAXLI NE] ;
char* hello=" Hel lofrom client";
structsockaddr _in servaddr;
if((sockf d=socket (
AF_ INET, SOCK_ DGRAM, 0)
)<0){
perror( "socketcr eationf ai
led");
exi
t(EXI T_FAI LURE) ;
}
memset (
&ser v addr ,0,sizeof(servaddr))
;
servaddr .sin_ fami l
y=AF_ INET;
servaddr .sin_ por t=ht ons( PORT) ;
servaddr .sin_ addr .
s_addr=I NADDR_ ANY;
sendt o(sockf d, (constchar* )hell
o,strl
en(hel
lo),
MSG_ CONFI RM, (constst r
uctsockaddr* )&servaddr,
si zeof (ser vaddr));
printf(
"Hel lomessagesent .\n");
n=r ecv from( sockf d,(char* )
buf f
er,MAXLI NE,
MSG_ WAI TALL, (
structsockaddr*)&servaddr,
&l en) ;
buf f
er[
n]='\0'
;
printf
("Ser
ver:%s\
n",
buf
fer
);
close(sockfd)
;
return0;
}

Out
put
:

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy