Line data Source code
1 : #include "../inc/header.h" 2 : 3 2 : int create_server(int port) 4 : { 5 2 : int sock; 6 2 : struct protoent *proto; 7 2 : struct sockaddr_in sin; 8 : 9 2 : proto = getprotobyname("tcp"); 10 2 : if (proto == NULL) 11 : return (-1); 12 2 : sock = socket(PF_INET, SOCK_STREAM, proto->p_proto); 13 2 : if (sock == -1) 14 : return sock; 15 2 : sin.sin_family = AF_INET; 16 2 : sin.sin_port = htons(port); 17 2 : sin.sin_addr.s_addr = htonl(INADDR_ANY); 18 2 : bind(sock, (struct sockaddr *)&sin, sizeof(sin)); 19 2 : listen(sock, 1); 20 : 21 2 : printf("Server created, listening on port %u \n", ntohs(sin.sin_port)); 22 : 23 : return (sock); 24 : } 25 : 26 : 27 : 28 14 : int createConnectionAndOutputIp(int sock) 29 : { 30 14 : uint32_t cslen; 31 14 : struct sockaddr_in csin; 32 14 : cslen = sizeof(struct sockaddr); 33 14 : int cs = accept(sock, (struct sockaddr *)&csin, &cslen); 34 28 : printf("Connection from : %d.%d.%d.%d\n", 35 14 : int(csin.sin_addr.s_addr&0xFF), 36 14 : int((csin.sin_addr.s_addr&0xFF00)>>8), 37 14 : int((csin.sin_addr.s_addr&0xFF0000)>>16), 38 14 : int((csin.sin_addr.s_addr&0xFF000000)>>24)); 39 14 : return cs; 40 : } 41 : 42 :