OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 // | |
5 | |
6 #import("dart:isolate"); | |
7 #import("dart:io"); | |
8 | |
9 void test1(int totalConnections) { | |
10 // Server which just closes immediately. | |
11 HttpServer server = new HttpServer(); | |
12 server.listen("127.0.0.1", 0, totalConnections); | |
13 server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { | |
14 response.outputStream.close(); | |
15 }; | |
16 | |
17 int count = 0; | |
18 HttpClient client = new HttpClient(); | |
19 for (int i = 0; i < totalConnections; i++) { | |
20 HttpClientConnection conn = client.get("127.0.0.1", server.port, "/"); | |
21 conn.onRequest = (HttpClientRequest request) { | |
22 request.outputStream.close(); | |
23 }; | |
24 conn.onResponse = (HttpClientResponse response) { | |
25 count++; | |
26 if (count == totalConnections) { | |
27 client.shutdown(); | |
28 server.close(); | |
29 } | |
30 }; | |
31 } | |
32 } | |
33 | |
34 | |
35 void test2(int totalConnections) { | |
36 // Server which responds without waiting for request body. | |
37 HttpServer server = new HttpServer(); | |
38 server.listen("127.0.0.1", 0, totalConnections); | |
39 server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { | |
40 response.outputStream.writeString("!dlrow ,olleH"); | |
41 response.outputStream.close(); | |
42 }; | |
43 | |
44 int count = 0; | |
45 HttpClient client = new HttpClient(); | |
46 for (int i = 0; i < totalConnections; i++) { | |
47 HttpClientConnection conn = client.get("127.0.0.1", server.port, "/"); | |
48 conn.onRequest = (HttpClientRequest request) { | |
49 request.contentLength = -1; | |
50 request.outputStream.writeString("Hello, world!"); | |
51 request.outputStream.close(); | |
52 }; | |
53 conn.onResponse = (HttpClientResponse response) { | |
54 count++; | |
55 if (count == totalConnections) { | |
56 client.shutdown(); | |
57 server.close(); | |
58 } | |
59 }; | |
60 } | |
61 } | |
62 | |
63 | |
64 void test3(int totalConnections) { | |
65 // Server which responds when request body has been received. | |
66 HttpServer server = new HttpServer(); | |
67 server.listen("127.0.0.1", 0, totalConnections); | |
68 server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { | |
69 request.inputStream.onData = () { | |
70 request.inputStream.read(); | |
71 }; | |
72 request.inputStream.onClosed = () { | |
73 response.outputStream.writeString("!dlrow ,olleH"); | |
74 response.outputStream.close(); | |
75 }; | |
76 }; | |
77 | |
78 int count = 0; | |
79 HttpClient client = new HttpClient(); | |
80 for (int i = 0; i < totalConnections; i++) { | |
81 HttpClientConnection conn = client.get("127.0.0.1", server.port, "/"); | |
82 conn.onRequest = (HttpClientRequest request) { | |
83 request.contentLength = -1; | |
84 request.outputStream.writeString("Hello, world!"); | |
85 request.outputStream.close(); | |
86 }; | |
87 conn.onResponse = (HttpClientResponse response) { | |
88 count++; | |
89 if (count == totalConnections) { | |
90 client.shutdown(); | |
91 server.close(); | |
92 } | |
93 }; | |
94 } | |
95 } | |
96 | |
97 | |
98 void main() { | |
99 test1(1); | |
100 test1(10); | |
101 test2(1); | |
102 test2(10); | |
103 test3(1); | |
104 test3(10); | |
105 } | |
OLD | NEW |