computer network assignment

// forwarder.c by Dr. Junwan Kim

// This program MUST be used for only csci315 at UDC

//

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <sys/socket.h>

#define PORTNUM1 2300

#define PORTNUM2 2400

#define MAXRCVLEN 500

int main(int argc, char *argv[])

char* msg = "HI CSCI315 from Inter-server\n";

char buffer[MAXRCVLEN + 1];

int len, consocket;

struct sockaddr_in dest;

struct sockaddr_in serv;

struct sockaddr_in client;

int server_socket;

int client_socket;

// For server

socklen_t socksize = sizeof(struct sockaddr_in);

memset(&serv, 0, sizeof(serv));

serv.sin_family = AF_INET;

serv.sin_addr.s_addr = htonl(INADDR_ANY);

serv.sin_port = htons(PORTNUM1);

server_socket = socket(AF_INET, SOCK_STREAM, 0);

bind(server_socket, (struct sockaddr *)&serv, sizeof(struct sockaddr));

// Write your code for for client here

// socket, connect, and recv here

// printf("As a client, I Received %s \n", buffer);

// memset(buffer, 0, strlen(buffer));

printf("Server starts...\n");

do{

listen(server_socket, 1);

consocket = accept(server_socket, (struct sockaddr *)&dest, &socksize);

send(consocket, msg, strlen(msg), 0);

while(len=recv(consocket, buffer, MAXRCVLEN, 0)>0){

printf("Received: %s ", buffer);

// As a client, send "buffer" here

if(strncmp(buffer, "exit", 4) == 0){

break;

}

memset(buffer, 0, strlen(buffer));

}

printf("Goodbye !\n");

close(consocket);

}while(consocket);

close(client_socket);

close(server_socket);

return EXIT_SUCCESS;