1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#define TELNET_MAXSIZE_BUFF (100) // taille buffer Telnet
struct _TELNET_struct{
TCP_SOCKET socket; // socket
char buffer[TELNET_MAXSIZE_BUFF]; // buffer de stockage
void (*callFunc)(void); // fonction suivante à lancer
} TELNET_struct telnet;
// initialisation de l'instance Telnet
void Telnet_Init(void){
telnet.socket = INVALID_SOCKET; // socket
telnet.buffer[0]='\0'; // buffer de stockage
telnet.callFunc= Telnet_openSocket; // prochaine fonction à executer
}
// processus Telnet Principal
void TelnetTask(void){
telnet.callFunc();
}
//***************************
// ouverture du socket
void Telnet_openSocket(void){
if(telnet.socket != INVALID_SOCKET){
telnet.socket = TCPOpen(0, TCP_OPEN_SERVER, TELNET_PORT, TCP_PURPOSE_TELNET);
if(telnet.socket == INVALID_SOCKET)
return;
telnet.callFunc = Telnet_promptLoggin;
}
}
//***************************
// récupération du Loggin
void Telnet_promptLoggin(void){
if(telnet.socket != INVALID_SOCKET){
TELNET_printf("Salut les gas\n");
TELNET_printf("Bienvenu chez moi\n");
TELNET_printf("Loggin : ");
TELNET_scanln(); // recupère une ligne (le contenu est mis dans telnet.buffer)
telnet.callFunc = Telnet_promptPassword;
}
}
// récupération du Password
void Telnet_promptPassword(void){
...
}
// écrit chaine de caractère
void TELNET_printf(char *str, ...){
fprintf(telnet.buffer, *str);
// vérifie qu'on peut écrire sur le port
if(TCPIsPutReady(telnet.socket) < strlen(telnet.buffer))
return;
TCPPutString(telnet.socket, str);
} |
Partager