This commit is contained in:
Francesco Cozzuto
2023-04-21 09:46:44 +02:00
parent 092ba2d1ad
commit 43ee04a2db
9 changed files with 510 additions and 47 deletions
+54
View File
@@ -0,0 +1,54 @@
typedef struct {
size_t size;
size_t used;
uint8_t *data;
} buffer_t;
typedef struct client_t client_t;
struct client_t {
client_t *prev;
client_t *next;
microtcp_socket_t *socket;
buffer_t input;
buffer_t output;
};
int main(void)
{
microtcp_t *mtcp = microtcp_create();
microtcp_socket_t *server = microtcp_open(mtcp, 80);
microtcp_queue_t *queue = microtcp_queue_create(mtcp);
microtcp_queue_register(queue, server, NULL, MICROTCP_EVENT_ACCEPT);
while (1) {
microtcp_event_t event = microtcp_queue_next(queue, no_block);
switch (event.type) {
case MICROTCP_EVENT_NONE:
break;
case MICROTCP_EVENT_READ:
break;
case MICROTCP_EVENT_RECV:
{
microtcp_socket_t *client_socket = event.socket;
microtcp_recv(client_socket, );
}
break;
case MICROTCP_EVENT_ACCEPT:
{
microtcp_socket_t *client_socket = microtcp_accept(event.socket, true);
microtcp_queue_register(queue, client_socket, NULL, MICROTCP_EVENT_SEND | MICROTCP_EVENT_RECV);
}
break;
}
}
microtcp_queue_destroy(queue);
microtcp_destroy(mtcp);
return 0;
}