Пример #1
0
        static void Main(string[] args)
        {
            Configuration
            .Create()
            .UseAutofac()
            .RegisterCommonComponents()
            .UseLog4Net();

            var totalHandled   = 0;
            var watch          = default(Stopwatch);
            var serverEndPoint = new IPEndPoint(SocketUtils.GetLocalIPV4(), 5000);
            var clientCount    = 4;
            var clients        = new List <TcpSocketClient>();
            var messageSize    = 1024 * 1;
            var messageCount   = 250000;
            var message        = new byte[messageSize];

            for (var index = 0; index < clientCount; index++)
            {
                var client = new TcpSocketClient(serverEndPoint, reply =>
                {
                    var local = Interlocked.Increment(ref totalHandled);
                    if (local == 1)
                    {
                        watch = Stopwatch.StartNew();
                    }
                    if (local % 10000 == 0)
                    {
                        Console.WriteLine("received reply message, size:" + reply.Length + ", count:" + local + ", timeSpent:" + watch.ElapsedMilliseconds + "ms");
                    }
                });
                client.Start();
                clients.Add(client);
            }

            var actions = new List <Action>();

            foreach (var client in clients)
            {
                actions.Add(() =>
                {
                    for (var index = 0; index < messageCount; index++)
                    {
                        client.SendMessage(message);
                    }
                });
            }

            Parallel.Invoke(actions.ToArray());

            Console.ReadLine();
        }
Пример #2
0
 private void StartTcpClient(int connectTimeoutMilliseconds = 5000)
 {
     _tcpClient.Start(connectTimeoutMilliseconds);
 }
Пример #3
0
 private void StartTcpClient()
 {
     _tcpClient.Start();
 }