Update examples
This commit is contained in:
@@ -10,26 +10,21 @@ int main(void)
|
|||||||
|
|
||||||
Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP);
|
Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP);
|
||||||
if (sock == NULL) { err = "create"; goto defer; }
|
if (sock == NULL) { err = "create"; goto defer; }
|
||||||
printf("create\n");
|
|
||||||
|
|
||||||
SockAddr addr = sock_addr("127.0.0.1", 6969);
|
SockAddr addr = sock_addr("127.0.0.1", 6969);
|
||||||
|
|
||||||
if (!sock_connect(sock, addr)) { err = "connect"; goto defer; }
|
if (!sock_connect(sock, addr)) { err = "connect"; goto defer; }
|
||||||
printf("connect\n");
|
|
||||||
|
|
||||||
const char *msg = "Hello from client!";
|
const char *msg = "Hello from client!";
|
||||||
char buf[128];
|
char buf[128];
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
|
|
||||||
sock_send(sock, msg, strlen(msg));
|
sock_send(sock, msg, strlen(msg));
|
||||||
printf("send\n");
|
|
||||||
sock_recv(sock, buf, sizeof(buf));
|
sock_recv(sock, buf, sizeof(buf));
|
||||||
printf("recv\n");
|
|
||||||
printf("%.*s\n", (int)sizeof(buf), buf);
|
printf("%.*s\n", (int)sizeof(buf), buf);
|
||||||
|
|
||||||
defer:
|
defer:
|
||||||
sock_close(sock);
|
sock_close(sock);
|
||||||
printf("close\n");
|
|
||||||
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -9,34 +9,26 @@ int main(void) {
|
|||||||
|
|
||||||
Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP);
|
Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP);
|
||||||
if (sock == NULL) { err = "create"; goto defer; }
|
if (sock == NULL) { err = "create"; goto defer; }
|
||||||
printf("create\n");
|
|
||||||
|
|
||||||
SockAddr addr = sock_addr("0.0.0.0", 6969);
|
SockAddr addr = sock_addr("0.0.0.0", 6969);
|
||||||
if (!sock_bind(sock, addr)) { err = "bind"; goto defer; }
|
if (!sock_bind(sock, addr)) { err = "bind"; goto defer; }
|
||||||
printf("bind\n");
|
|
||||||
if (!sock_listen(sock, 16)) { err = "listen"; goto defer; }
|
if (!sock_listen(sock, 16)) { err = "listen"; goto defer; }
|
||||||
printf("listen\n");
|
|
||||||
|
|
||||||
Sock *client = sock_accept(sock);
|
Sock *client = sock_accept(sock);
|
||||||
if (client == NULL) { err = "accept"; goto defer; }
|
if (client == NULL) { err = "accept"; goto defer; }
|
||||||
printf("accept\n");
|
|
||||||
|
|
||||||
const char *msg = "Hello from server!";
|
const char *msg = "Hello from server!";
|
||||||
char buf[128];
|
char buf[128];
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
|
|
||||||
sock_send(client, msg, strlen(msg));
|
sock_send(client, msg, strlen(msg));
|
||||||
printf("send\n");
|
|
||||||
sock_recv(client, buf, sizeof(buf));
|
sock_recv(client, buf, sizeof(buf));
|
||||||
printf("recv\n");
|
|
||||||
printf("%.*s\n", (int)sizeof(buf), buf);
|
printf("%.*s\n", (int)sizeof(buf), buf);
|
||||||
|
|
||||||
sock_close(client);
|
sock_close(client);
|
||||||
printf("close\n");
|
|
||||||
|
|
||||||
defer:
|
defer:
|
||||||
sock_close(sock);
|
sock_close(sock);
|
||||||
printf("close\n");
|
|
||||||
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1,29 +1,28 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#define SOCK_IMPLEMENTATION
|
#define SOCK_IMPLEMENTATION
|
||||||
#include "sock.h"
|
#include "sock.h"
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
Sock *sock = sock_create(SOCK_IPV4, SOCK_UDP);
|
Sock *client = sock_create(SOCK_IPV4, SOCK_UDP);
|
||||||
if (sock == NULL) {
|
if (client == NULL) {
|
||||||
perror("sock_create");
|
perror("sock_create");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SockAddr server_addr = sock_addr("127.0.0.1", 6969);
|
||||||
const char *msg = "Hello from client!";
|
const char *msg = "Hello from client!";
|
||||||
sock_sendto(sock, msg, strlen(msg), sock_addr("127.0.0.1", 6969));
|
ssize_t sent = sock_sendto(client, msg, strlen(msg), server_addr);
|
||||||
|
if (sent < 0) {
|
||||||
|
perror("sock_sendto");
|
||||||
|
sock_close(client);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
SockAddr server_addr;
|
printf("Sent message: %s\n", msg);
|
||||||
char buf[128];
|
|
||||||
memset(buf, 0, sizeof(buf));
|
|
||||||
|
|
||||||
sock_recvfrom(sock, buf, sizeof(buf), &server_addr);
|
|
||||||
|
|
||||||
printf("Received \"%.*s\" from %s:%d\n", (int)sizeof(buf), buf,
|
|
||||||
server_addr.str, server_addr.port);
|
|
||||||
|
|
||||||
sock_close(sock);
|
|
||||||
|
|
||||||
|
sock_close(client);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#define SOCK_IMPLEMENTATION
|
#define SOCK_IMPLEMENTATION
|
||||||
#include "sock.h"
|
#include "sock.h"
|
||||||
@@ -11,25 +14,30 @@ int main(void)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sock_bind(server, sock_addr("0.0.0.0", 6969))) {
|
SockAddr server_addr = sock_addr("0.0.0.0", 6969);
|
||||||
|
if (!sock_bind(server, server_addr)) {
|
||||||
perror("sock_bind");
|
perror("sock_bind");
|
||||||
sock_close(server);
|
sock_close(server);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("Server is listening on port %d...\n", server_addr.port);
|
||||||
|
|
||||||
SockAddr client_addr;
|
SockAddr client_addr;
|
||||||
char buf[128];
|
char buf[64];
|
||||||
memset(buf, 0, sizeof(buf));
|
|
||||||
|
|
||||||
sock_recvfrom(server, buf, sizeof(buf), &client_addr);
|
while (true) {
|
||||||
|
ssize_t rec = sock_recvfrom(server, buf, sizeof(buf), &client_addr);
|
||||||
|
if (rec < 0) {
|
||||||
|
perror("sock_recvfrom");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
printf("Received \"%.*s\" from %s:%d\n", (int)sizeof(buf), buf,
|
buf[rec] = '\0';
|
||||||
client_addr.str, client_addr.port);
|
printf("Received from %s:%d \"%s\"\n", client_addr.str,
|
||||||
|
client_addr.port, buf);
|
||||||
const char *msg = "Hello from server!";
|
}
|
||||||
sock_sendto(server, msg, strlen(msg), client_addr);
|
|
||||||
|
|
||||||
sock_close(server);
|
sock_close(server);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user