1.4.0 Renamed sock_create() to sock()
This commit is contained in:
@@ -33,7 +33,7 @@ int main(int argc, char **argv)
|
|||||||
address = argv[1];
|
address = argv[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
Sock *client = sock_create(SOCK_IPV4, SOCK_TCP);
|
Sock *client = sock(SOCK_IPV4, SOCK_TCP);
|
||||||
if (client == NULL) {
|
if (client == NULL) {
|
||||||
fprintf(stderr, "ERROR: Could not create socket\n");
|
fprintf(stderr, "ERROR: Could not create socket\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ disconnect:
|
|||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
Sock *server = sock_create(SOCK_IPV4, SOCK_TCP);
|
Sock *server = sock(SOCK_IPV4, SOCK_TCP);
|
||||||
if (server == NULL) {
|
if (server == NULL) {
|
||||||
fprintf(stderr, "ERROR: Could not create socket\n");
|
fprintf(stderr, "ERROR: Could not create socket\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|||||||
@@ -8,23 +8,23 @@ int main(void)
|
|||||||
{
|
{
|
||||||
char *err = "None";
|
char *err = "None";
|
||||||
|
|
||||||
Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP);
|
Sock *socket = sock(SOCK_IPV4, SOCK_TCP);
|
||||||
if (sock == NULL) { err = "create"; goto defer; }
|
if (socket == NULL) { err = "create"; goto defer; }
|
||||||
|
|
||||||
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(socket, addr)) { err = "connect"; goto defer; }
|
||||||
|
|
||||||
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(socket, msg, strlen(msg));
|
||||||
sock_recv(sock, buf, sizeof(buf));
|
sock_recv(socket, buf, sizeof(buf));
|
||||||
printf("%.*s\n", (int)sizeof(buf), buf);
|
printf("%.*s\n", (int)sizeof(buf), buf);
|
||||||
|
|
||||||
defer:
|
defer:
|
||||||
sock_close(sock);
|
sock_close(socket);
|
||||||
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -8,24 +8,24 @@ int main(void)
|
|||||||
{
|
{
|
||||||
bool err = false;
|
bool err = false;
|
||||||
|
|
||||||
Sock *sock = sock_create(SOCK_IPV6, SOCK_TCP);
|
Sock *s = sock(SOCK_IPV6, SOCK_TCP);
|
||||||
if (sock == NULL) { err = "create"; goto defer; }
|
if (s == NULL) { err = "create"; goto defer; }
|
||||||
|
|
||||||
SockAddr addr = sock_addr("::1", 6969);
|
SockAddr addr = sock_addr("::1", 6969);
|
||||||
|
|
||||||
if (!sock_connect(sock, addr)) { err = "connect"; goto defer; }
|
if (!sock_connect(s, addr)) { err = "connect"; goto defer; }
|
||||||
|
|
||||||
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(s, msg, strlen(msg));
|
||||||
sock_recv(sock, buf, sizeof(buf));
|
sock_recv(s, buf, sizeof(buf));
|
||||||
printf("%s:%d: %.*s\n", sock->addr.str, sock->addr.port,
|
printf("%s:%d: %.*s\n", s->addr.str, s->addr.port,
|
||||||
(int)sizeof(buf), buf);
|
(int)sizeof(buf), buf);
|
||||||
|
|
||||||
defer:
|
defer:
|
||||||
sock_close(sock);
|
sock_close(s);
|
||||||
if (err) sock_log_error();
|
if (err) sock_log_error();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ int main(void)
|
|||||||
{
|
{
|
||||||
char *err = "None";
|
char *err = "None";
|
||||||
|
|
||||||
Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP);
|
Sock *server = sock(SOCK_IPV4, SOCK_TCP);
|
||||||
if (sock == NULL) { err = "create"; goto defer; }
|
if (server == NULL) { err = "create"; goto defer; }
|
||||||
|
|
||||||
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(server, addr)) { err = "bind"; goto defer; }
|
||||||
if (!sock_listen(sock, 16)) { err = "listen"; goto defer; }
|
if (!sock_listen(server, 16)) { err = "listen"; goto defer; }
|
||||||
|
|
||||||
Sock *client = sock_accept(sock);
|
Sock *client = sock_accept(server);
|
||||||
if (client == NULL) { err = "accept"; goto defer; }
|
if (client == NULL) { err = "accept"; goto defer; }
|
||||||
|
|
||||||
const char *msg = "Hello from server!";
|
const char *msg = "Hello from server!";
|
||||||
@@ -29,7 +29,7 @@ int main(void)
|
|||||||
sock_close(client);
|
sock_close(client);
|
||||||
|
|
||||||
defer:
|
defer:
|
||||||
sock_close(sock);
|
sock_close(server);
|
||||||
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ int main(void)
|
|||||||
{
|
{
|
||||||
bool err = false;
|
bool err = false;
|
||||||
|
|
||||||
Sock *sock = sock_create(SOCK_IPV6, SOCK_TCP);
|
Sock *server = sock(SOCK_IPV6, SOCK_TCP);
|
||||||
if (sock == NULL) { err = true; goto close; }
|
if (server == NULL) { err = true; goto close; }
|
||||||
|
|
||||||
SockAddr addr = sock_addr("::", 6969);
|
SockAddr addr = sock_addr("::", 6969);
|
||||||
if (!sock_bind(sock, addr)) { err = true; goto close; }
|
if (!sock_bind(server, addr)) { err = true; goto close; }
|
||||||
if (!sock_listen(sock, 16)) { err = true; goto close; }
|
if (!sock_listen(server, 16)) { err = true; goto close; }
|
||||||
|
|
||||||
Sock *client = sock_accept(sock);
|
Sock *client = sock_accept(server);
|
||||||
if (client == NULL) { err = true; goto close; }
|
if (client == NULL) { err = true; goto close; }
|
||||||
|
|
||||||
const char *msg = "Hello from server!";
|
const char *msg = "Hello from server!";
|
||||||
@@ -29,7 +29,7 @@ int main(void)
|
|||||||
sock_close(client);
|
sock_close(client);
|
||||||
|
|
||||||
close:
|
close:
|
||||||
sock_close(sock);
|
sock_close(server);
|
||||||
if (err) sock_log_error();
|
if (err) sock_log_error();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -13,17 +13,17 @@ int main(void)
|
|||||||
|
|
||||||
printf("%s:%d\n", addr.str, addr.port);
|
printf("%s:%d\n", addr.str, addr.port);
|
||||||
|
|
||||||
Sock *sock = sock_create(addr.type, SOCK_TCP);
|
Sock *s = sock(addr.type, SOCK_TCP);
|
||||||
if (sock == NULL) {
|
if (s == NULL) {
|
||||||
fprintf(stderr, "sock_create: ");
|
fprintf(stderr, "sock_create: ");
|
||||||
sock_log_error();
|
sock_log_error();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sock_connect(sock, addr)) {
|
if (!sock_connect(s, addr)) {
|
||||||
fprintf(stderr, "sock_connect: ");
|
fprintf(stderr, "sock_connect: ");
|
||||||
sock_log_error();
|
sock_log_error();
|
||||||
sock_close(sock);
|
sock_close(s);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,16 +32,16 @@ int main(void)
|
|||||||
"Host: example.com\r\n"
|
"Host: example.com\r\n"
|
||||||
"Connection: close\r\n\r\n";
|
"Connection: close\r\n\r\n";
|
||||||
|
|
||||||
sock_send(sock, req, strlen(req));
|
sock_send(s, req, strlen(req));
|
||||||
|
|
||||||
char res[1024];
|
char res[1024];
|
||||||
memset(res, 0, sizeof(res));
|
memset(res, 0, sizeof(res));
|
||||||
while (sock_recv(sock, res, sizeof(res)-1) > 0) {
|
while (sock_recv(s, res, sizeof(res)-1) > 0) {
|
||||||
printf("%s\n", res);
|
printf("%s\n", res);
|
||||||
memset(res, 0, sizeof(res));
|
memset(res, 0, sizeof(res));
|
||||||
}
|
}
|
||||||
|
|
||||||
sock_close(sock);
|
sock_close(s);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
Sock *client = sock_create(SOCK_IPV4, SOCK_UDP);
|
Sock *client = sock(SOCK_IPV4, SOCK_UDP);
|
||||||
if (client == NULL) {
|
if (client == NULL) {
|
||||||
perror("sock_create");
|
perror("sock_create");
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
Sock *server = sock_create(SOCK_IPV4, SOCK_UDP);
|
Sock *server = sock(SOCK_IPV4, SOCK_UDP);
|
||||||
if (server == NULL) {
|
if (server == NULL) {
|
||||||
perror("sock_create");
|
perror("sock_create");
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
7
sock.h
7
sock.h
@@ -1,4 +1,4 @@
|
|||||||
// sock - v1.3.0 - MIT License - https://github.com/seajee/sock.h
|
// sock - v1.4.0 - MIT License - https://github.com/seajee/sock.h
|
||||||
|
|
||||||
#ifndef SOCK_H_
|
#ifndef SOCK_H_
|
||||||
#define SOCK_H_
|
#define SOCK_H_
|
||||||
@@ -47,7 +47,7 @@ typedef struct {
|
|||||||
SockAddr sock_addr(const char *addr, int port);
|
SockAddr sock_addr(const char *addr, int port);
|
||||||
|
|
||||||
// Create a socket with the corresponding domain and type
|
// Create a socket with the corresponding domain and type
|
||||||
Sock *sock_create(SockAddrType domain, SockType type);
|
Sock *sock(SockAddrType domain, SockType type);
|
||||||
|
|
||||||
// Bind a socket to a specific address
|
// Bind a socket to a specific address
|
||||||
bool sock_bind(Sock *sock, SockAddr addr);
|
bool sock_bind(Sock *sock, SockAddr addr);
|
||||||
@@ -129,7 +129,7 @@ SockAddr sock_addr(const char *addr, int port)
|
|||||||
return sa;
|
return sa;
|
||||||
}
|
}
|
||||||
|
|
||||||
Sock *sock_create(SockAddrType domain, SockType type)
|
Sock *sock(SockAddrType domain, SockType type)
|
||||||
{
|
{
|
||||||
Sock *sock = malloc(sizeof(*sock));
|
Sock *sock = malloc(sizeof(*sock));
|
||||||
if (sock == NULL) {
|
if (sock == NULL) {
|
||||||
@@ -309,6 +309,7 @@ void sock_log_error(void)
|
|||||||
/*
|
/*
|
||||||
Revision history:
|
Revision history:
|
||||||
|
|
||||||
|
1.4.0 (2025-04-26) Renamed sock_create() to sock()
|
||||||
1.3.0 (2025-04-26) Renamed sock_log_errors to sock_log_error
|
1.3.0 (2025-04-26) Renamed sock_log_errors to sock_log_error
|
||||||
1.2.0 (2025-04-26) sock_addr can now resolve hostnames
|
1.2.0 (2025-04-26) sock_addr can now resolve hostnames
|
||||||
1.1.0 (2025-04-26) New sock_log_errors function
|
1.1.0 (2025-04-26) New sock_log_errors function
|
||||||
|
|||||||
Reference in New Issue
Block a user