/* The Peer object is a thread that receives messages from Connections.  There is a 
   separate Peer thread for each Connection */

import java.io.*;
import java.util.*;
import java.net.*;
import java.util.*;
import java.lang.*;
import javax.swing.*;

public class Peer extends Thread {
 
    public void start(int listenPort, JTextArea InMess)
    {
	byte[] buffer = new byte[5096];
	try
	    {
		DatagramSocket dsocket = new DatagramSocket((int) listenPort);
		DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
		
		while(dsocket != null)
		    {
			dsocket.receive(packet);
			System.out.println("\nPacket Received.\n");
			int len = packet.getLength();
			String msg = new String(buffer, 0, len);
			msg = "\n" + packet.getAddress().getHostName() + ": " + msg + "\n";
			System.out.println(msg);
			InMess.append(msg);			
			packet.setLength(buffer.length);
		    }		  
		System.out.println("Connection to " + dsocket + "lost.");
		dsocket.close();
	    } //end try
	catch(IOException OutStreamFail)
	    {
		System.out.println("Message not sent.");
	    } //end catch
    } //end run
}; //end thread

