00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "../Portage/Error.h"
00012 #include "../Portage/Tools.h"
00013 #include "NetClient.h"
00014 #include "NetParser.h"
00015
00016 #define TEST "TEST testage 10:-12.3abc:de fg"
00017
00018 int RequestTest(NetRequestParameter *pParameter);
00019 int RequestData(NetRequestParameter *pParameter);
00020 int RequestEnd(NetRequestParameter *pParameter);
00021
00022 int End;
00023
00024 int main(void)
00025 {
00026 NetClient Client;
00027 NetParser Parser(Client.Connect);
00028 Ini Fichier("Net.conf");
00029 BEGIN
00030 LOC("main")
00031 LOG("client.log")
00032
00033 if(Fichier.GetSection("langage"))
00034 {
00035 if(Fichier.GetSection("langage")->GetItem("error"))
00036 {
00037 LANG(Fichier.GetSection("langage")->GetItem("error")->GetData())
00038 }
00039 else
00040 printf("Pas d'info de langage d'erreur\n");
00041 }
00042 else
00043 printf("Pas de section langage\n");
00044
00045 End = 0;
00046
00047 TRY Parser.AddRequest("TEST", 0, (ROUTINE)RequestTest, "%s %s %i:%f%s:%s");
00048 TRY Parser.AddRequest(NET_DATA, 0, (ROUTINE)RequestData, "%s %i:%s");
00049 TRY Parser.AddRequest(NET_END, 0, (ROUTINE)RequestEnd, "%s");
00050 TRY printf("Parser configurer, un test : %s\n", TEST);
00051
00052 TRY CERROR = Parser.Parse(TEST);
00053 TRY printf("Parser opperationnel\n\nConnection...\n");
00054
00055 TRY if(Fichier.GetSection("client"))
00056 {
00057 if(Fichier.GetSection("client")->GetItem("ip") && Fichier.GetSection("client")->GetItem("port") && Fichier.GetSection("client")->GetItem("pass"))
00058 TRY CERROR = Client.Start(
00059 Fichier.GetSection("client")->GetItem("ip")->GetData(),
00060 AtoD(Fichier.GetSection("client")->GetItem("port")->GetData()),
00061 Fichier.GetSection("client")->GetItem("pass")->GetData()
00062 );
00063 else
00064 {
00065 printf("Pas d'info d'ip, port ou pass\n");
00066 CERROR = 2;
00067 }
00068 }
00069 else
00070 {
00071 printf("Pas de section client\n");
00072 CERROR = 2;
00073 }
00074
00075 TRY printf("Connecter a %s:%i\n", Client.Connect->Ip, Client.Connect->Port);
00076
00077 do
00078 {
00079 TRY CERROR = Client.Receive();
00080
00081 TRY printf("\nRecu : %s\n", Client.GetBuffer());
00082
00083 TRY CERROR = Parser.Parse(Client.GetBuffer());
00084 }
00085 while(!CERROR && !End);
00086
00087 Client.Stop();
00088
00089 printf("Systeme stoper\n");
00090
00091 PERROR
00092
00093 printf("\nPressez \'entree\' pour quitter.\n");
00094 KeyGet();
00095
00096 ENDBEGIN
00097 }
00098
00099 int RequestTest(NetRequestParameter *pParameter)
00100 {
00101 for(int i = 0; i < pParameter->GetNbData(); i++)
00102 {
00103 switch(pParameter->GetType(i))
00104 {
00105 case NET_INT :
00106 printf("Parse %i\tI : %d\n", i, pParameter->GetInt(i));
00107 break;
00108 case NET_FLOAT :
00109 printf("Parse %i\tF : %f\n", i, pParameter->GetFloat(i));
00110 break;
00111 case NET_CHAR :
00112 printf("Parse %i\tC : %c\n", i, pParameter->GetChar(i));
00113 break;
00114 case NET_STRING :
00115 printf("Parse %i\tS : %i >%s<\n", i, strlen(pParameter->GetString(i)), pParameter->GetString(i));
00116 break;
00117 }
00118 }
00119
00120 return 0;
00121 }
00122
00123 int RequestData(NetRequestParameter *pParameter)
00124 {
00125 char Buffer[20];
00126
00127 sprintf(Buffer, "%s %i", NET_DATA, strlen(pParameter->GetString(2)));
00128 pParameter->Connect->SetBuffer(Buffer);
00129
00130 return pParameter->Connect->Send();
00131 }
00132
00133 int RequestEnd(NetRequestParameter *pParameter)
00134 {
00135 End = 1;
00136
00137 return 0;
00138 }
00139