//
// Copyright (c) 2002
// Ronald Kevin Burton
//
// Z poniższym kodem nie jest związana żadna gwarancja poprawności działania.
// Program został dołączony do książki ".NET CLR. Księga eksperta" w celu
// ilustracji koncepcji i zasad przedstawionych w tej książce. Program może być 
// używany na własne ryzyko.
//
// Przyznaje się prawo do użycia lub kopiowania tego oprogramowania do dowolnego celu
// bez konieczności ponoszenia żadnych opłat pod warunkiem, że powyższe uwagi zostaną 
// zachowane we wszystkich kopiach. Przyznaje się także prawo do modyfikacji kodu
// i dystrybucji zmodyfikowanego kodu pod warunkiem zachowania powyższych uwag
// oraz dołączenia informacji mówiącej o modyfikacji kodu.
//
// 
using System;
using System.Net;
using System.Text;
using System.Net.Sockets; 

class Sender
{

	public static void Main(string[] args)
	{	
		string address = "localhost";
		if(args.Length == 1)
			address = args[0];
		bool continueSending = true;
		while(continueSending)
		{		
			Console.WriteLine("Wprowadź wiadomość do wysłania. Wpisz 'quit', aby wyjść.");
			string message = Console.ReadLine();
			SendMessage(message, address);
			if(message == "quit")
			{
				SendMessage(message, address);
				continueSending = false;
			}	
		}
	}

	public static void SendMessage(string message, string server)
	{
		UdpClient client = new UdpClient(5002); 
		// byte[] buffer = Encoding.ASCII.GetBytes(message);
		byte[] buffer = Encoding.Unicode.GetBytes(message);
		client.Send(buffer, buffer.Length, server, 5001);		
		client.Close();
	}
}
