PRACTICAL-2
Server
and client socket program in c
Server socket program :
#include
<stdio.h>
#include
<netdb.h>
#include
<netinet/in.h>
#include
<stdlib.h>
#include
<string.h>
#include
<sys/socket.h>
#include
<sys/types.h>
#define
MAX
80
#define
PORT
8080
#define
SA
struct
sockaddr
void
func
(
int
sockfd )
{
char
buff
[
MAX
];
int
n
;
for
(;;)
{
bzero
(
buff
,
MAX
);
read (
sockfd ,
buff
,
sizeof
(
buff
));
printf
(
"From
client: %s
\t
To
client : " ,
buff
);
bzero
(
buff
,
MAX
);
n
=
0
;
while
((
buff
[
n
++
]
=
getchar
())
!=
'
\n
'
);
write
(
sockfd ,
buff
,
sizeof
(
buff
));
if
(
strncmp
(
"exit"
,
buff
,
4
)
==
0
)
{
printf
(
"Server
Exit... \n
"
);
break
;
}
}
}
int
main
()
{
int
sockfd
,
connfd
,
len
;
struct
sockaddr_in
servaddr
,
cli
;
sockfd
=
socket
(
AF_INET
,
SOCK_STREAM
,
0
);
if
(
sockfd
==
- 1
)
{
printf
(
"socket
creation failed... \n " );
exit
(
0
);
}
else
{
printf
(
"Socket
successfully created.. \n " );
}
bzero
(
&
servaddr
,
sizeof
(
servaddr
));
servaddr
.
sin_family
=
AF_INET
;
servaddr
.
sin_addr
.
s_addr
=
htonl
(
INADDR_ANY
);
servaddr
.
sin_port
=
htons
(
PORT
);
if
((
bind
(
sockfd
,
( SA
*
)
&
servaddr
,
sizeof
(
servaddr
)))
!=
0
)
{
printf
(
"socket
bind failed... \n
"
);
exit
(
0
);
}
else
{
printf
(
"Socket
successfully binded.. \n " );
}
if
((
listen
(
sockfd
,
5
))
!=
0
)
{
printf
(
"Listen
failed... \n
"
);
exit
(
0
);
}
else
{
printf
(
"Server
listening.. \n
"
);
}
len
=
sizeof (
cli
);
connfd
=
accept
(
sockfd
,
( SA
*
)
&
cli
,
&
len
);
if
(
connfd
<
0
)
{
printf
(
"server
accept failed... \n
"
);
exit
(
0
);
}
else
{
printf
(
"server
accept the client... \n " );
}
func
(
connfd
);
close (
sockfd
);
}
client
socket program :
#include
<netdb.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<sys/socket.h>
#define
MAX
80
#define
PORT
8080
#define
SA
struct
sockaddr
void
func
(
int
sockfd )
{
char
buff
[
MAX
];
int
n
;
for
(;;)
{
bzero
(
buff
,
sizeof
(
buff
));
printf
(
"Enter
the string : " );
n
=
0
;
while
((
buff
[
n
++
]
=
getchar
())
!=
'
\n
'
);
write
(
sockfd ,
buff
,
sizeof
(
buff
));
bzero
(
buff
,
sizeof
(
buff
));
read
(
sockfd ,
buff
,
sizeof
(
buff
));
printf
(
"From
Server : %s
"
,
buff
);
if
((
strncmp
(
buff
,
"exit"
,
4
))
==
0
)
{
printf
(
"Client
Exit... \n
"
);
break
;
}
}
}
int
main
()
{
int
sockfd
,
connfd
;
struct
sockaddr_in
servaddr
,
cli
;
sockfd
=
socket
(
AF_INET
,
SOCK_STREAM
,
0
);
if
(
sockfd
==
- 1
)
{
printf
(
"socket
creation failed... \n " );
exit
(
0
);
}
else
{
printf
(
"Socket
successfully created.. \n " );
}
bzero
(
&
servaddr
,
sizeof
(
servaddr
));
servaddr
.
sin_family
=
AF_INET
;
servaddr
.
sin_addr
.
s_addr
=
inet_addr
(
"127.0.0.1"
);
servaddr
.
sin_port
=
htons
(
PORT
);
if
(
connect
(
sockfd
,
( SA
*
)
&
servaddr
,
sizeof
(
servaddr
))
!=
0
)
{
printf
(
"connection
with the server failed... \n " );
exit
(
0
);
}
else
{
printf
(
"connected
to the server.. \n
"
);
}
func
(
sockfd
);
close
(
sockfd
);
}
Result
:
Compile
- > gcc server.c -o server
gcc
client.c -o client
Run
- > ./server
./client
Before client.c running :
After client.c running :
Download doc file here.... |
No comments:
Post a Comment