general cleanups

This commit is contained in:
cozis
2023-10-29 22:38:14 +01:00
parent 5f3f7dc66d
commit 733597b6aa
16 changed files with 1525 additions and 917 deletions
+5 -46
View File
@@ -3,58 +3,17 @@
int main(void)
{
microtcp_errcode_t errcode;
microtcp_t *mtcp = microtcp_create("10.0.0.5", "10.0.0.4", NULL, NULL);
if (mtcp == NULL) {
fprintf(stderr, "Error: Failed to instanciate microtcp stack\n");
return -1;
}
uint16_t port = 8081;
microtcp_socket_t *server = microtcp_open(mtcp, port, &errcode);
if (errcode) {
fprintf(stderr, "Error: %s\n", microtcp_strerror(errcode));
microtcp_destroy(mtcp);
return -1;
}
assert(server);
fprintf(stderr, "Listening on port %d\n", port);
microtcp_socket_t *server = microtcp_open(mtcp, port, NULL);
while (1) {
fprintf(stderr, "About to accept\n");
microtcp_socket_t *client = microtcp_accept(server, false, &errcode);
if (errcode) {
fprintf(stderr, "Error: %s\n", microtcp_strerror(errcode));
break;
}
fprintf(stderr, "Accepted a connection\n");
microtcp_socket_t *client = microtcp_accept(server, false, NULL);
char buffer[1024];
size_t num = microtcp_recv(client, buffer, sizeof(buffer), false, &errcode);
if (errcode) {
fprintf(stderr, "Error: %s\n", microtcp_strerror(errcode));
goto handled;
}
fprintf(stderr, "(%d bytes received)\n", (int) num);
size_t sent1 = microtcp_send(client, "echo: ", 6, false, &errcode);
if (errcode) {
fprintf(stderr, "Error: %s\n", microtcp_strerror(errcode));
goto handled;
}
fprintf(stderr, "(%d bytes sent 1)\n", (int) sent1);
size_t sent2 = microtcp_send(client, buffer, num, false, &errcode);
if (errcode) {
fprintf(stderr, "Error: %s\n", microtcp_strerror(errcode));
goto handled;
}
fprintf(stderr, "(%d bytes sent 2)\n", (int) sent2);
handled:
size_t num = microtcp_recv(client, buffer, sizeof(buffer), false, NULL);
microtcp_send(client, "echo: ", 6, false, NULL);
microtcp_send(client, buffer, num, false, NULL);
microtcp_close(client);
}
+25
View File
@@ -0,0 +1,25 @@
int main(void)
{
microtcp_t *mtcp = microtcp_create(..);
uint16_t port = 8080;
microtcp_socket_t *socket = microtcp_open(mtcp, port, 0);
microtcp_mux_t *mux = microtcp_mux_create(mtcp);
for (int i = 0; i < 3; i++) {
microtcp_socket_t *accepted = microtcp_accept(socket, 0, 0);
microtcp_mux_register(mux, accepted, MICROTCP_MUX_RECV | MICROTCP_MUX_SEND);
}
for (microtcp_muxevent_t event; microtcp_mux_wait(mux, &event)) {
if (event.events & MICROTCP_MUX_RECV) {
// Il socket "event.socket" ha dei dati da leggere
} else {
// Il socket "event.socket" ha spazio per inviare
}
}
microtcp_destroy(mtcp);
}