I'm screwed up in a problem from last 2 days. Can any one come up with a solution for me?
My problem is

I have a server application which has to boadcast messages over internet. My client program need to trace those messages. Its only one way.

Currently i'm using below code at server to broad cast
void brodcast()
Socket sock = new Socket(AddressFamily.Unspecified, SocketType.Dgram,
IPEndPoint iep1 = new IPEndPoint(IPAddress.Broadcast, 9050);
string hostname = Dns.GetHostName();
byte[] data = Encoding.ASCII.GetBytes(hostname);
SocketOptionName.Broadcast, 1);
sock.SendTo(data, iep1);

Below code at client
void listenTobroadcast()
string mcastGroup = "";
string port = "5000";
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

IPEndPoint ipep = new IPEndPoint(IPAddress.Any, int.Parse(port));

s.SetSocketOption(SocketOptionLevel.Udp, SocketOptionName.NoDelay, 1);

s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);


s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 0);

IPAddress ip = IPAddress.Parse(mcastGroup);

s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, IPAddress.Broadcast);

while (true)
byte[] b = new byte[5000];
Console.WriteLine("Waiting for data..");
string str = System.Text.Encoding.ASCII.GetString(b, 0, b.Length);
Console.WriteLine(str.Replace('\0', ' ').Trim());


application work fine within the network. But i wanted this to work over internet any system running client application need to receive the message.

Advanced thanks for help. Waiting for early reply