Index: icas_send/Makefile
===================================================================
--- icas_send/Makefile	(revision 245)
+++ icas_send/Makefile	(revision 245)
@@ -0,0 +1,8 @@
+all:
+	gcc icas_send.c -o icas_send
+	gcc icas_recv.c -o icas_recv
+clean:
+	rm icas_send icas_recv
+debug:
+	gcc -g icas_send.c -o icas_send
+	gcc -g icas_recv.c -o icas_recv
Index: icas_send/icas_recv.c
===================================================================
--- icas_send/icas_recv.c	(revision 245)
+++ icas_send/icas_recv.c	(revision 245)
@@ -0,0 +1,62 @@
+#include <stdio.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <unistd.h>
+#include <netinet/in.h>
+
+void Die(char *mess)
+{
+    perror(mess);
+    exit(1);
+}
+
+int main(int argc, char *argv[])
+{
+    struct sockaddr_in recv_sockopt;
+    int	   recv_sock;
+    int	   recv_length = sizeof(recv_sockopt);
+    int	   received;
+    char   BLACK_LIST[256];
+
+    if (argc <= 1)
+    {
+	fprintf(stderr, "USAGE: %s <RECV_PORT>\n", argv[0]);
+	exit(1);
+    }
+
+    /* Create the UDP socket to send response to icas_recv */
+    if ((recv_sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
+    {
+	Die("Failed to create socket for sending black list.");
+    }
+
+    /* Construct the server sockaddr_in structure */
+    memset(&recv_sockopt,  0, sizeof(recv_sockopt));      /* Clear struct */
+    memset(&BLACK_LIST,    0, sizeof(BLACK_LIST));	  /* Clear string */
+
+    // socket option of icas_send socket
+    recv_sockopt.sin_family = AF_INET;                   /* Internet/IP */
+    recv_sockopt.sin_addr.s_addr = htonl(INADDR_ANY);	 /* Any IP address */
+    recv_sockopt.sin_port = htons(atoi(argv[1]));        /* server port */
+
+    /* Bind the socket */
+    if (bind(recv_sock, (struct sockaddr *) &recv_sockopt, recv_length) < 0)
+    {
+	Die("Failed to bind server socket");
+    }
+    fprintf(stderr,"Finished binding port #%s for icas_recv socket.\n",argv[1]);
+
+    if ((received = recvfrom(recv_sock, BLACK_LIST, sizeof(BLACK_LIST), 0, (struct sockaddr *) &recv_sockopt, (socklen_t *) &recv_length)) < 0)
+    {
+	Die("Failed to receive message");
+    }
+    fprintf(stderr,"Received: %s\n", BLACK_LIST);
+
+    close(recv_sock);
+    exit(0);
+}
Index: icas_send/icas_send.c
===================================================================
--- icas_send/icas_send.c	(revision 245)
+++ icas_send/icas_send.c	(revision 245)
@@ -0,0 +1,55 @@
+#include <stdio.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <unistd.h>
+#include <netinet/in.h>
+
+void Die(char *mess)
+{
+    perror(mess);
+    exit(1);
+}
+
+int main(int argc, char *argv[])
+{
+    struct sockaddr_in send_sockopt;
+    int	   send_sock;
+    int	   send_length = sizeof(send_sockopt);
+    char   BLACK_LIST[256];
+
+    if (argc <= 2)
+    {
+	fprintf(stderr, "USAGE: %s <RECV_IP> <RECV_PORT>\n", argv[0]);
+	exit(1);
+    }
+
+    /* Create the UDP socket to send response to icas_recv */
+    if ((send_sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
+    {
+	Die("Failed to create socket for sending black list.");
+    }
+
+    /* Construct the server sockaddr_in structure */
+    memset(&send_sockopt,  0, sizeof(send_sockopt));      /* Clear struct */
+    memset(&BLACK_LIST,    0, sizeof(BLACK_LIST));	  /* Clear string */
+    sprintf(BLACK_LIST,"This is a test!");
+
+    // socket option of icas_send socket
+    send_sockopt.sin_family = AF_INET;                   /* Internet/IP */
+    send_sockopt.sin_addr.s_addr = inet_addr(argv[1]);   /* IP address */
+    send_sockopt.sin_port = htons(atoi(argv[2]));        /* server port */
+
+    if (sendto(send_sock, BLACK_LIST, sizeof(BLACK_LIST), 0, 
+	       (struct sockaddr *) &send_sockopt, 
+	       sizeof(send_sockopt)) != sizeof(BLACK_LIST)) {
+	Die("1: Mismatch in number of sent bytes");
+    }
+
+    close(send_sock);
+    exit(0);
+}
