Cnlab 5 Q 4
Cnlab 5 Q 4
Q4:
SENDER:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <time.h>
int window_size;
int total_packets;
int *sent_packets; // Track if packets are sent
int main() {
int sock = 0;
struct sockaddr_in serv_addr;
// Create socket
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("\n Socket creation error \n");
return -1;
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(PORT);
free(sent_packets);
close(sock);
return 0;
}
RECIEVER:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <time.h>
if (!received_packets[seq_num - 1]) {
printf("Packet %d received successfully.\n", seq_num);
received_packets[seq_num - 1] = 1; // Mark packet as received
}
int main() {
int server_fd, new_socket;
struct sockaddr_in address;
int opt = 1;
int addrlen = sizeof(address);
int seq_num;
// Create socket
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);
printf("Connected to sender.\n");
while (1) {
int valread = recv(new_socket, &seq_num, sizeof(seq_num), 0);
if (valread <= 0) break;
free(received_packets);
close(new_socket);
close(server_fd);
return 0;
}
OUTPUT: