Better Udp Client : Udp Client « Network « C# / C Sharp






Better Udp Client

/*
C# Network Programming 
by Richard Blum

Publisher: Sybex 
ISBN: 0782141765
*/
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class BetterdUdpClient
{
   public static void Main()
   {
      byte[] data = new byte[30];
      string input, stringData;
      IPEndPoint ipep = new IPEndPoint(
                      IPAddress.Parse("127.0.0.1"), 9050);

      Socket server = new Socket(AddressFamily.InterNetwork,
                     SocketType.Dgram, ProtocolType.Udp);

      string welcome = "Hello, are you there?";
      data = Encoding.ASCII.GetBytes(welcome);
      server.SendTo(data, data.Length, SocketFlags.None, ipep);

      IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
      EndPoint tmpRemote = (EndPoint)sender;

      data = new byte[30];
      int recv = server.ReceiveFrom(data, ref tmpRemote);

      Console.WriteLine("Message received from {0}:", tmpRemote.ToString());
      Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));


      int i = 30;
      while(true)
      {
         input = Console.ReadLine();
         if (input == "exit")
            break;
         server.SendTo(Encoding.ASCII.GetBytes(input), tmpRemote);
         data = new byte[i];
         try
         {
            recv = server.ReceiveFrom(data, ref tmpRemote);
            stringData = Encoding.ASCII.GetString(data, 0, recv);
            Console.WriteLine(stringData);
         } catch (SocketException)
         {
            Console.WriteLine("WARNING: data lost, retry message.");
            i += 10;
         }
      }
      Console.WriteLine("Stopping client");
      server.Close();
   }
}

           
       








Related examples in the same category

1.Test Udp Client
2.Time out Udp Client
3.Simple Udp Client
4.Odd Udp Client
5.Retry Udp ClientRetry Udp Client
6.Exception Udp ClientException Udp Client
7.Best Udp ClientBest Udp Client
8.Bad Udp Client
9.Binary Udp Client
10.Udp Client Sample
11.Udp Client Multi Send
12.Udp Client Multi Receive