Пример #1
0
        static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                Console.WriteLine("You missed the program parameters!");
                printUsage();
            }
            else if (args[0] == "-c")
            {
                ClientImpl client = new ClientImpl();

                Console.WriteLine("<Running in client mode>");
                try
                {
                    int colonIndex = args[1].IndexOf(':');
                    if (colonIndex == -1)
                    {
                        throw new ArgumentException("Invalid host:port format");
                    }

                    string host = args[1].Substring(0, colonIndex);
                    string port = args[1].Substring(colonIndex + 1);

                    while (!client.Connect(host, Int32.Parse(port)))
                    {
                        Console.WriteLine("Trying to connect to {0}:{1}...", host, port);
                        Thread.Sleep(1000);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Failed to connect to the server: {0}", e.ToString());
                }

                if (client.IsConnected)
                {
                    Thread clientReceiveTH = new Thread(client.Receive);
                    clientReceiveTH.Start();

                    DataEncoderImpl.SendSampleData(client.Send);
                    DataEncoderImpl.SendRandomSampleData(client.Send);
                }
            }
            else if (args[0] == "-s")
            {
                ServerImpl server = new ServerImpl();

                Console.WriteLine("<Running in server mode>");

                if (args.Length < 3)
                {
                    server.Listening("", int.Parse(args[1]));
                }
                else
                {
                    server.Listening(args[1], Int32.Parse(args[2]));
                }

                Thread serverReceiveTH = new Thread(server.Receive);
                serverReceiveTH.Start();

                DataEncoderImpl.SendSampleData(server.Send);
                DataEncoderImpl.SendRandomSampleData(server.Send);
            }
            else
            {
                printUsage();
            }
        }