====== Net 0 ====== #include "../common/common.c" #define NAME "net0" #define UID 999 #define GID 999 #define PORT 2999 void run() { unsigned int i; unsigned int wanted; wanted = random(); printf("Please send '%d' as a little endian 32bit int\n", wanted); if(fread(&i, sizeof(i), 1, stdin) == NULL) { errx(1, ":(\n"); } if(i == wanted) { printf("Thank you sir/madam\n"); } else { printf("I'm sorry, you sent %d instead\n", i); } } int main(int argc, char **argv, char **envp) { int fd; char *username; /* Run the process as a daemon */ background_process(NAME, UID, GID); /* Wait for socket activity and return */ fd = serve_forever(PORT); /* Set the client socket to STDIN, STDOUT, and STDERR */ set_io(fd); /* Don't do this :> */ srandom(time(NULL)); run(); } Le programme génère un nombre aléatoire qu'il faut lui renvoyer en ''little endian 32 bit int''. Si vous voulez en savoir plus sur ce format, je ne peux que vous conseiller de lire l'article de wikipedia. [[http://fr.wikipedia.org/wiki/Endianness]] #!/usr/bin/env python # encoding: utf-8 import telnetlib from struct import pack HOST = "192.168.1.29" PORT = 2999 t = telnetlib.Telnet(HOST, PORT) t.read_until("Please send '") nbr = t.read_some() nbr = int(nbr.split("'")[0]) print "Number : %d" % nbr print "Send : %s" % (repr(pack('