Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
key-value-store
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Samarth Joshi
key-value-store
Commits
dbb1720f
Commit
dbb1720f
authored
Oct 25, 2020
by
Roshan Rabinarayan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
basic messaging socket
parent
7610e770
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
173 additions
and
14 deletions
+173
-14
KVClient.c
KVClient.c
+63
-0
KVServer.c
KVServer.c
+107
-1
Makefile
Makefile
+3
-0
README.txt
README.txt
+0
-13
client
client
+0
-0
server
server
+0
-0
No files found.
KVClient.c
View file @
dbb1720f
...
@@ -9,3 +9,66 @@ send GET , PUT , and DELETE requests to the server process. It will have a main
...
@@ -9,3 +9,66 @@ send GET , PUT , and DELETE requests to the server process. It will have a main
client library interfaces to do the actual operations.
client library interfaces to do the actual operations.
*/
*/
#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
;
// socket create and varification
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
));
// assign IP, PORT
servaddr
.
sin_family
=
AF_INET
;
servaddr
.
sin_addr
.
s_addr
=
inet_addr
(
"127.0.0.1"
);
servaddr
.
sin_port
=
htons
(
PORT
);
// connect the client socket to server socket
if
(
connect
(
sockfd
,
(
SA
*
)
&
servaddr
,
sizeof
(
servaddr
))
!=
0
)
{
printf
(
"connection with the server failed...
\n
"
);
exit
(
0
);
}
else
printf
(
"connected to the server..
\n
"
);
// function for chat
func
(
sockfd
);
// close the socket
close
(
sockfd
);
}
\ No newline at end of file
KVServer.c
View file @
dbb1720f
...
@@ -57,4 +57,110 @@ error. (Assume each character to be 1 byte in size)
...
@@ -57,4 +57,110 @@ error. (Assume each character to be 1 byte in size)
readers single writer locks for efficiency.
readers single writer locks for efficiency.
KVClient
KVClient
*/
*/
\ No newline at end of file
#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
// Function designed for chat between client and server.
void
func
(
int
sockfd
)
{
char
buff
[
MAX
];
int
n
;
// infinite loop for chat
for
(;;)
{
bzero
(
buff
,
MAX
);
// read the message from client and copy it in buffer
read
(
sockfd
,
buff
,
sizeof
(
buff
));
// print buffer which contains the client contents
printf
(
"From client: %s
\t
To client : "
,
buff
);
bzero
(
buff
,
MAX
);
n
=
0
;
// copy server message in the buffer
while
((
buff
[
n
++
]
=
getchar
())
!=
'\n'
)
;
// and send that buffer to client
write
(
sockfd
,
buff
,
sizeof
(
buff
));
// if msg contains "Exit" then server exit and chat ended.
if
(
strncmp
(
"exit"
,
buff
,
4
)
==
0
)
{
printf
(
"Server Exit...
\n
"
);
break
;
}
}
}
// Driver function
int
main
()
{
int
sockfd
,
connfd
,
len
;
struct
sockaddr_in
servaddr
,
cli
;
// socket create and verification
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
));
// assign IP, PORT
servaddr
.
sin_family
=
AF_INET
;
servaddr
.
sin_addr
.
s_addr
=
htonl
(
INADDR_ANY
);
servaddr
.
sin_port
=
htons
(
PORT
);
// Binding newly created socket to given IP and verification
if
((
bind
(
sockfd
,
(
SA
*
)
&
servaddr
,
sizeof
(
servaddr
)))
!=
0
)
{
printf
(
"socket bind failed...
\n
"
);
exit
(
0
);
}
else
printf
(
"Socket successfully binded..
\n
"
);
// Now server is ready to listen and verification
if
((
listen
(
sockfd
,
5
))
!=
0
)
{
printf
(
"Listen failed...
\n
"
);
exit
(
0
);
}
else
printf
(
"Server listening..
\n
"
);
len
=
sizeof
(
cli
);
// Accept the data packet from client and verification
while
(
1
)
{
//
connfd
=
accept
(
sockfd
,
(
SA
*
)
&
cli
,
&
len
);
if
(
connfd
<
0
)
{
printf
(
"server acccept failed...
\n
"
);
exit
(
0
);
}
else
printf
(
"server acccept the client...
\n
"
);
}
connfd
=
accept
(
sockfd
,
(
SA
*
)
&
cli
,
&
len
);
if
(
connfd
<
0
)
{
printf
(
"server acccept failed...
\n
"
);
exit
(
0
);
}
else
printf
(
"server acccept the client...
\n
"
);
// Function for chatting between client and server
func
(
connfd
);
// After chatting close the socket
close
(
sockfd
);
}
\ No newline at end of file
Makefile
0 → 100644
View file @
dbb1720f
all
:
KVClient.c KVServer.c
gcc KVServer.c
-o
server
gcc KVClient.c
-o
client
\ No newline at end of file
README.txt
deleted
100644 → 0
View file @
7610e770
Team:
Samarth Joshi 203059008
Roshan Sahu 203050048
How to Build:
How to Run:
References:
client
0 → 100755
View file @
dbb1720f
File added
server
0 → 100755
View file @
dbb1720f
File added
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment