simpler socket api. Now the blocking of functions and error codes aren't function parameters but attributes of the socket object with their respective getters and setters

This commit is contained in:
cozis
2023-11-01 21:33:49 +01:00
parent e6dbeafcd7
commit c3f4a52b6d
6 changed files with 322 additions and 304 deletions
+11 -9
View File
@@ -3,7 +3,6 @@
int main(void)
{
microtcp_errcode_t err;
microtcp_t *mtcp = microtcp_create("10.0.0.5", "10.0.0.4", NULL, NULL);
if (mtcp == NULL) {
fprintf(stderr, "Error: Couldn't create MicroTCP instance\n");
@@ -11,24 +10,27 @@ int main(void)
}
uint16_t port = 8081;
microtcp_socket_t *server = microtcp_open(mtcp, port, &err);
microtcp_socket_t *server = microtcp_open(mtcp, port);
if (server == NULL) {
fprintf(stderr, "Error: %s\n", microtcp_strerror(err));
fprintf(stderr, "Error: %s\n", microtcp_strerror(microtcp_get_error(mtcp)));
microtcp_destroy(mtcp);
return -1;
}
while (1) {
microtcp_socket_t *client = microtcp_accept(server, false, &err);
microtcp_socket_t *client = microtcp_accept(server);
if (client == NULL) {
fprintf(stderr, "Error: %s\n", microtcp_strerror(err));
fprintf(stderr, "Error: %s\n", microtcp_strerror(microtcp_get_socket_error(server)));
break;
}
char buffer[1024];
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);
int num = microtcp_recv(client, buffer, sizeof(buffer));
if (num > 0) {
microtcp_send(client, "echo: ", 6);
microtcp_send(client, buffer, num);
}
microtcp_close(client);
}