Skip to content

Commit 843720b

Browse files
committed
simplfy test code
1 parent 502feae commit 843720b

File tree

1 file changed

+83
-90
lines changed

1 file changed

+83
-90
lines changed

docs/benchmark.md

Lines changed: 83 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ Percentage of the requests served within a certain time (ms)
211211
100% 38 (longest request)
212212
```
213213
214-
# Source Code
214+
# Test Code
215215
## Python version
216216
```python
217217
import asyncio
@@ -242,17 +242,12 @@ asyncio.run(main())
242242
## This project
243243
```cpp
244244
Task<> handle_echo(Stream stream) {
245-
auto& sockinfo = stream.get_sock_info();
246-
auto sa = reinterpret_cast<const sockaddr*>(&sockinfo);
247-
char addr[INET6_ADDRSTRLEN] {};
248-
249245
while (true) {
250246
auto data = (co_await stream.read(200));
251247
if (data.empty()) { break; }
252248
co_await stream.write(data);
253249
}
254250

255-
256251
stream.close();
257252
}
258253

@@ -299,107 +294,105 @@ int main(int argc, char *argv[])
299294
exit(0);
300295
}
301296

302-
// some variables we need
303-
int portno = strtol(argv[1], NULL, 10);
304-
struct sockaddr_in server_addr, client_addr;
305-
socklen_t client_len = sizeof(client_addr);
297+
// some variables we need
298+
int portno = strtol(argv[1], NULL, 10);
299+
struct sockaddr_in server_addr, client_addr;
300+
socklen_t client_len = sizeof(client_addr);
306301

307-
char buffer[MAX_MESSAGE_LEN];
308-
memset(buffer, 0, sizeof(buffer));
302+
char buffer[MAX_MESSAGE_LEN];
303+
memset(buffer, 0, sizeof(buffer));
309304

310305

311-
// setup socket
312-
int sock_listen_fd = socket(AF_INET, SOCK_STREAM, 0);
313-
if (sock_listen_fd < 0) {
314-
error("Error creating socket..\n");
315-
}
306+
// setup socket
307+
int sock_listen_fd = socket(AF_INET, SOCK_STREAM, 0);
308+
if (sock_listen_fd < 0) {
309+
error("Error creating socket..\n");
310+
}
316311
int yes = 1;
317312
// lose the pesky "address already in use" error message
318313
setsockopt(sock_listen_fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
319314

320-
memset((char *)&server_addr, 0, sizeof(server_addr));
321-
server_addr.sin_family = AF_INET;
322-
server_addr.sin_port = htons(portno);
323-
server_addr.sin_addr.s_addr = INADDR_ANY;
315+
memset((char *)&server_addr, 0, sizeof(server_addr));
316+
server_addr.sin_family = AF_INET;
317+
server_addr.sin_port = htons(portno);
318+
server_addr.sin_addr.s_addr = INADDR_ANY;
324319

325320

326-
// bind socket and listen for connections
327-
if (bind(sock_listen_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
328-
error("Error binding socket..\n");
321+
// bind socket and listen for connections
322+
if (bind(sock_listen_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
323+
error("Error binding socket..\n");
329324

330-
if (listen(sock_listen_fd, BACKLOG) < 0) {
325+
if (listen(sock_listen_fd, BACKLOG) < 0) {
331326
error("Error listening..\n");
332327
}
333-
printf("epoll echo server listening for connections on port: %d\n", portno);
334-
335-
336-
struct epoll_event ev, events[MAX_EVENTS];
337-
int new_events, sock_conn_fd, epollfd;
338-
339-
epollfd = epoll_create(MAX_EVENTS);
340-
if (epollfd < 0)
341-
{
342-
error("Error creating epoll..\n");
343-
}
344-
ev.events = EPOLLIN;
345-
ev.data.fd = sock_listen_fd;
346-
347-
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, sock_listen_fd, &ev) == -1)
348-
{
349-
error("Error adding new listeding socket to epoll..\n");
350-
}
351-
352-
while(1)
353-
{
354-
new_events = epoll_wait(epollfd, events, MAX_EVENTS, -1);
355-
356-
if (new_events == -1)
357-
{
358-
error("Error in epoll_wait..\n");
359-
}
360-
361-
for (int i = 0; i < new_events; ++i)
362-
{
363-
if (events[i].data.fd == sock_listen_fd)
364-
{
365-
sock_conn_fd = accept4(sock_listen_fd, (struct sockaddr *)&client_addr, &client_len, SOCK_NONBLOCK);
366-
if (sock_conn_fd == -1)
367-
{
368-
error("Error accepting new connection..\n");
369-
}
370-
371-
ev.events = EPOLLIN | EPOLLET;
372-
ev.data.fd = sock_conn_fd;
373-
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, sock_conn_fd, &ev) == -1)
374-
{
375-
error("Error adding new event to epoll..\n");
376-
}
377-
}
378-
else
379-
{
380-
int newsockfd = events[i].data.fd;
381-
int bytes_received = recv(newsockfd, buffer, MAX_MESSAGE_LEN, 0);
382-
if (bytes_received <= 0)
383-
{
384-
epoll_ctl(epollfd, EPOLL_CTL_DEL, newsockfd, NULL);
385-
shutdown(newsockfd, SHUT_RDWR);
386-
}
387-
else
388-
{
389-
send(newsockfd, buffer, bytes_received, 0);
390-
}
391-
}
392-
}
393-
}
394-
}
328+
printf("epoll echo server listening for connections on port: %d\n", portno);
395329

396330

331+
struct epoll_event ev, events[MAX_EVENTS];
332+
int new_events, sock_conn_fd, epollfd;
333+
334+
epollfd = epoll_create(MAX_EVENTS);
335+
if (epollfd < 0)
336+
{
337+
error("Error creating epoll..\n");
338+
}
339+
ev.events = EPOLLIN;
340+
ev.data.fd = sock_listen_fd;
341+
342+
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, sock_listen_fd, &ev) == -1)
343+
{
344+
error("Error adding new listeding socket to epoll..\n");
345+
}
346+
347+
while(1)
348+
{
349+
new_events = epoll_wait(epollfd, events, MAX_EVENTS, -1);
350+
351+
if (new_events == -1)
352+
{
353+
error("Error in epoll_wait..\n");
354+
}
355+
356+
for (int i = 0; i < new_events; ++i)
357+
{
358+
if (events[i].data.fd == sock_listen_fd)
359+
{
360+
sock_conn_fd = accept4(sock_listen_fd, (struct sockaddr *)&client_addr, &client_len, SOCK_NONBLOCK);
361+
if (sock_conn_fd == -1)
362+
{
363+
error("Error accepting new connection..\n");
364+
}
365+
366+
ev.events = EPOLLIN | EPOLLET;
367+
ev.data.fd = sock_conn_fd;
368+
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, sock_conn_fd, &ev) == -1)
369+
{
370+
error("Error adding new event to epoll..\n");
371+
}
372+
}
373+
else
374+
{
375+
int newsockfd = events[i].data.fd;
376+
int bytes_received = recv(newsockfd, buffer, MAX_MESSAGE_LEN, 0);
377+
if (bytes_received <= 0)
378+
{
379+
epoll_ctl(epollfd, EPOLL_CTL_DEL, newsockfd, NULL);
380+
shutdown(newsockfd, SHUT_RDWR);
381+
}
382+
else
383+
{
384+
send(newsockfd, buffer, bytes_received, 0);
385+
}
386+
}
387+
}
388+
}
389+
}
397390

398391
void error(char* msg)
399392
{
400-
perror(msg);
401-
printf("erreur...\n");
402-
exit(1);
393+
perror(msg);
394+
printf("erreur...\n");
395+
exit(1);
403396
}
404397
```
405398

0 commit comments

Comments
 (0)