34 lines
No EOL
1,014 B
C
34 lines
No EOL
1,014 B
C
#include <arpa/inet.h>
|
|
#include <stdio.h>
|
|
#include<unistd.h>
|
|
|
|
#define error(a) do {} while(0)
|
|
|
|
// this is main function
|
|
int main(
|
|
// arguments:
|
|
){
|
|
int my_soket = socket(AF_INET, SOCK_STREAM, 0)
|
|
;
|
|
// https://stackoverflow.com/questions/24194961/how-do-i-use-setsockoptso-reuseaddr
|
|
// Source - https://stackoverflow.com/a
|
|
// Posted by Chnossos, modified by community. See post 'Timeline' for change history
|
|
// Retrieved 2025-12-10, License - CC BY-SA 4.0
|
|
|
|
if (setsockopt(my_soket, SOL_SOCKET, SO_REUSEADDR, &(int){1}, sizeof(int)) < 0)
|
|
error("setsockopt(SO_REUSEADDR) failed");
|
|
|
|
struct sockaddr_in serv_addr, cli_addr;
|
|
|
|
bzero((char *) &serv_addr, sizeof(serv_addr));
|
|
portno = atoi(argv[1]);
|
|
serv_addr.sin_family = AF_INET;
|
|
serv_addr.sin_addr.s_addr = INADDR_ANY;
|
|
serv_addr.sin_port = htons(portno);
|
|
if (bind(my_soket, (struct sockaddr *) &serv_addr,
|
|
sizeof(serv_addr)) < 0)
|
|
error("ERROR on binding");
|
|
|
|
|
|
|
|
} |