diff --git a/UDP-client-server.py b/UDP-client-server.py
index 052a8aea8b3fd40476d596ee208546e0017cd7af..1fa06c33d1bffde873d33969ced20f1f44fefeec 100755
--- a/UDP-client-server.py
+++ b/UDP-client-server.py
@@ -44,13 +44,14 @@ def udp_client_receive(UDP_RECEIVE_IP, UDP_RECEIVE_PORT):
 
     try:
         rcv_sock.bind(ADDR)
-        print 'Server Listening on',  ADDR
+        print('Server Listening on',  ADDR)
     except Exception:
-        print '***ERROR: Server Port Binding Failed'
+        print('***ERROR: Server Port Binding Failed')
 
 #FIRE UP THE LISTENER ENGINES
     while True:
         data, addr = rcv_sock.recvfrom(BUFFER)
+        data = data.decode("utf-8")
         splitdata = data.split(',')
         timecount = splitdata[0].strip("('")
         rt_delay = (time.time() - float(timecount))
@@ -65,8 +66,8 @@ def udp_client_receive(UDP_RECEIVE_IP, UDP_RECEIVE_PORT):
 
         rt_delay_array.append(rt_delay)
 
-        print (time.ctime() + ',' + 'received , ' +
-               packet_number + ' , ' + str(rt_delay))
+        print((time.ctime() + ',' + 'received , ' +
+               packet_number + ' , ' + str(rt_delay)))
 
 # Store minimum and maximum delay
         if rt_delay > max_delay:
@@ -87,10 +88,10 @@ def udp_client_send(UDP_DEST_IP,  UDP_DEST_PORT,
     inter_departure_time = 1. / PACKETS_PER_SEC
     packet_count_snd = 0
 
-    print "UDP Client Started"
-    print "UDP target IP:", UDP_DEST_IP
-    print "UDP target port:", UDP_DEST_PORT
-    print "UDP Packets to Send:",  NR_OF_PACKETS
+    print("UDP Client Started")
+    print("UDP target IP:", UDP_DEST_IP)
+    print("UDP target port:", UDP_DEST_PORT)
+    print("UDP Packets to Send:",  NR_OF_PACKETS)
 
 #IF IPv6
     if ':' in UDP_DEST_IP:
@@ -115,7 +116,7 @@ def udp_client_send(UDP_DEST_IP,  UDP_DEST_PORT,
             time.sleep(inter_departure_time)
             snd_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
             snd_sock.sendto(str(("%.5f" % time.time(), str('%08d' % i),
-                                 padding)), (UDP_DEST_IP, UDP_DEST_PORT))
+                                 padding)).encode("utf-8"), (UDP_DEST_IP, UDP_DEST_PORT))
             packet_count_snd = packet_count_snd + 1
 
 #WAIT 5SEC FOR ALL PACKETS TO ARRIVE
@@ -126,18 +127,18 @@ def udp_client_send(UDP_DEST_IP,  UDP_DEST_PORT,
 
     PLR = 100 - ((packet_count_rcvd * 100.) / packet_count_snd)
 
-    print '\n', packet_count_snd,  'packets sent'
-    print packet_count_rcvd,  'packets received'
-    print 'packet loss ratio = ',  round(PLR, 3),  '%'
+    print('\n', packet_count_snd,  'packets sent')
+    print(packet_count_rcvd,  'packets received')
+    print('packet loss ratio = ',  round(PLR, 3),  '%')
 
     if (max_delay - min_delay != -100):
-        print 'max_delay = ', max_delay
-        print 'min_delay = ', min_delay
-        print 'range   = ', (max_delay - min_delay)
+        print('max_delay = ', max_delay)
+        print('min_delay = ', min_delay)
+        print('range   = ', (max_delay - min_delay))
 
 #CALCULATE THE STANDARD DEVIATION
     if rt_delay_array:
-        print 'std.dev = ', np.std(rt_delay_array)
+        print('std.dev = ', np.std(rt_delay_array))
 
 #NETWORK STABILITY BASED ON PACKET LOSS AND DELAY, VALUE 0-100
     network_stability = 0
@@ -147,7 +148,7 @@ def udp_client_send(UDP_DEST_IP,  UDP_DEST_PORT,
         avg_packet_delay = cumulative_delay / packet_count_rcvd
 #CALCULATE STABILITY
         network_stability = int(((packet_count_rcvd/packet_count_snd)*(avg_packet_delay/packet_wait_time)*100)+0.5)
-        print 'avg.rtt = ', avg_packet_delay
+        print('avg.rtt = ', avg_packet_delay)
 
 
 #START THE THREADS FOR SENDER AND RECEIVER
diff --git a/UDP-reflector.py b/UDP-reflector.py
index 2743cb933fe268cc217eb03ed4a0b16ea68a304b..10389bee7a3ffa030ab4b4a58460ac37134e1f7f 100755
--- a/UDP-reflector.py
+++ b/UDP-reflector.py
@@ -22,16 +22,17 @@ else:
 #BINDING, PROCESSING AND WRITING TO CSV
 try:
     EchoServer.bind(ADDR)
-    print 'echo server started on port', ADDR
+    print('echo server started on port', ADDR)
 except Exception:
-    print '***ERROR: Port Binding Failed'
+    print('***ERROR: Port Binding Failed')
 
 while True:
     data, addr = EchoServer.recvfrom(BUFFER)
+    data = data.decode("utf-8")
     addlst = addr[0], REMOTE_PORT
 
     if REFLECT_SWITCH == 1:
-        EchoServer.sendto('%s' % (data), addlst)
+        EchoServer.sendto(data.encode("utf-8"), addlst)
 
     splitdata = data.split(',')
     timecount = splitdata[0].strip("('")
@@ -44,8 +45,8 @@ while True:
                    ',' + 'received , ' + packet_number +
                    ' , ' + str(one_way_delay) + '\n'))
 
-    print (time.ctime() + ',' + 'received , ' +
-           packet_number + ' , ' + str(one_way_delay))
+    print((time.ctime() + ',' + 'received , ' +
+           packet_number + ' , ' + str(one_way_delay)))
 
 outfile.close()
 EchoServer.close()