Last active
November 3, 2022 13:35
-
-
Save eXeC64/de0293ee1ea3f53aab21 to your computer and use it in GitHub Desktop.
Simple IPv4 TCP server in C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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