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