L1F21BSCS0463 Lab6
L1F21BSCS0463 Lab6
Bakhtawar Shahid
L1F21BSCS0463
F3
(Task 1)
Server code :
// Server side implementation of TCP client-server model
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
// Driver code
int main() {
int sockfd, newfd;
char buffer[MAXLINE];
char *hello = "Hello from server";
struct sockaddr_in servaddr, cliaddr;
Client Code :
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
int main() {
int sockfd;
char buffer[MAXLINE];
char *hello = "Hello from client";
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
close(sockfd);
return 0;
}
(Task 2)
Code for Client :
int main() {
int sockfd;
char buffer[MAXLINE];
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
servaddr.sin_addr.s_addr = INADDR_ANY;
char data[MAXLINE];
fgets(data, MAXLINE, file);
fclose(file);
encryptData(data);
close(sockfd);
return 0;
}
int main() {
int sockfd, newfd;
char buffer[MAXLINE];
struct sockaddr_in servaddr, cliaddr;
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = INADDR_ANY;
servaddr.sin_port = htons(PORT);
if (listen(sockfd, 5) < 0) {
perror("listen failed");
exit(EXIT_FAILURE);
}
decryptData(buffer);
close(newfd);
}
return 0;
}
(Task – 3)
Code for Server
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main() {
int sockfd, newfd;
struct sockaddr_in servaddr, cliaddr;
char buffer[MAXLINE];
char *file_name = "example.txt";
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = INADDR_ANY;
servaddr.sin_port = htons(PORT);
if (listen(sockfd, 5) == -1) {
perror("listen failed");
exit(EXIT_FAILURE);
}
while (1) {
int len = sizeof(cliaddr);
printf("Client connected from port %d, process ID: %d\n", ntohs(cliaddr.sin_port), getpid());
fclose(file);
printf("File sent to client.\n");
close(newfd);
printf("Connection with client closed.\n");
}
close(sockfd);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
int sockfd;
struct sockaddr_in servaddr;
char buffer[MAXLINE];
char *file_name = "received_file.txt";
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // Assuming server is running on localhost
while (1) {
int n = recv(sockfd, buffer, MAXLINE, 0);
if (n <= 0) break;
fwrite(buffer, sizeof(char), n, file);
}
fclose(file);
printf("File received and saved as %s.\n", file_name);
close(sockfd);
printf("Connection with server closed.\n");
return 0;
}