diff --git a/.gitignore b/.gitignore index 254defd..0b1b44f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ server +.vscode +.DS_Store diff --git a/assets/test.jpg b/assets/test.jpg new file mode 100755 index 0000000..ffaa9af Binary files /dev/null and b/assets/test.jpg differ diff --git a/avClient b/avClient new file mode 100755 index 0000000..323c58a Binary files /dev/null and b/avClient differ diff --git a/avServer b/avServer new file mode 100755 index 0000000..c4ec5ec Binary files /dev/null and b/avServer differ diff --git a/avatarClient.c b/avatarClient.c new file mode 100644 index 0000000..3ebb80c --- /dev/null +++ b/avatarClient.c @@ -0,0 +1,50 @@ +// Client side C/C++ program to demonstrate Socket programming +#include +#include +#include +#include +#include +#include +#include +#define PORT 8080 + +int main(int argc, char const *argv[]) +{ + struct sockaddr_in address; + int sock = 0, message_recieved; + struct sockaddr_in serv_addr; + char buffer[1024]; + if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) + { + printf("\n Socket creation error \n"); + return -1; + } + + memset(&serv_addr, '0', sizeof(serv_addr)); + + serv_addr.sin_family = AF_INET; + serv_addr.sin_port = htons(PORT); + + if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) + { + printf("\nConnection Failed \n"); + return -1; + } + while (1) + { + message_recieved = recv(sock, buffer, sizeof(buffer), 0); + if (strcmp(buffer, "over") == 0) + { + break; + } + else + { + int av_open = open("package.jpg", O_CREAT | O_RDWR); + int av_write = write(av_open, buffer, sizeof(buffer)); + int av_close = close(av_open); + } + printf("%s", "Received"); + } + + return 0; +} diff --git a/avatarServer.c b/avatarServer.c new file mode 100644 index 0000000..87270f6 --- /dev/null +++ b/avatarServer.c @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include +#include +#include + +#define PORT 8080 + +int main(int argc, char const *argv[]) +{ + int server_fd, new_socket, read_avatar; + struct sockaddr_in address; + int opt = 1; + int addrlen = sizeof(address); + char buffer[1024]; + char *overMessage = "over"; + + // Creating socket file descriptor + if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) + { + perror("socket failed"); + exit(EXIT_FAILURE); + } + + address.sin_family = AF_INET; + address.sin_addr.s_addr = INADDR_ANY; + address.sin_port = htons(PORT); + + // Forcefully attaching socket to the port 8080 + if (bind(server_fd, (struct sockaddr *)&address, + sizeof(address)) < 0) + { + perror("bind failed"); + exit(EXIT_FAILURE); + } + if (listen(server_fd, 3) < 0) + { + perror("listen"); + exit(EXIT_FAILURE); + } + if ((new_socket = accept(server_fd, (struct sockaddr *)&address, + (socklen_t *)&addrlen)) < 0) + { + perror("accept"); + exit(EXIT_FAILURE); + } + + int avatar_fd = open("assets/test.jpg", O_RDONLY); + if (avatar_fd < 0) + { + return -1; + } + while ((read_avatar = read(avatar_fd, buffer, sizeof(buffer))) > 0) + { + printf("%d\n", read_avatar); + send(new_socket, buffer, sizeof(buffer), 0); + } + send(new_socket, overMessage, sizeof(overMessage), 0); + return 0; +} diff --git a/package.jpg b/package.jpg new file mode 100755 index 0000000..e69de29