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