Skip to content

Instantly share code, notes, and snippets.

@eXeC64
Last active November 3, 2022 13:35
Show Gist options
  • Save eXeC64/de0293ee1ea3f53aab21 to your computer and use it in GitHub Desktop.
Save eXeC64/de0293ee1ea3f53aab21 to your computer and use it in GitHub Desktop.
Simple IPv4 TCP server in C
#include <stdio.h>
/* atoi() */
#include <stdlib.h>
/* close() */
#include <unistd.h>
/* sockaddr_in */
#include <arpa/inet.h>
#define UNUSED(x) (void)x
int main(int argc, char **argv)
{
if(argc != 3) {
puts("invalid num of args");
return 1;
}
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(argv[1]);
addr.sin_port = htons(atoi(argv[2]));
int sock = socket(AF_INET, SOCK_STREAM, 0);
if(bind(sock, (const struct sockaddr*)&addr, sizeof addr) != 0) {
puts("bind failed");
return 1;
}
listen(sock, 0);
for(;;) {
int conn = accept(sock, NULL, NULL);
dprintf(conn, "hello world\n");
close(conn);
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment