/* TCPSer.c: 2G/3G TCP Server Compiler: BC++ 3.1, Turbo C++ 1.01(3.01) Compile mode: large Project: TCPSer.C lib\G4500.lib lib\WServer.lib lib\os7_com.lib Hardware: G-4500-2G [Feb 24, 2015] by William */ #include "lib\G4500.h" #include "lib\WServer.h" #include "lib\os7_com.h" Server_Info MyServer; _GPRS_DATA GPRSData; int main() { char ServerPort[7] = {0}; char SendData[1460] = {0}; int Error = 0; int LedFlag = 0; int CSQ; int CREG; int Tmp=99; int clientno=0; int Res = 1; int i; char SendClient; int SendLen; SYS_PROFILE UserProfile; memset(&UserProfile,0,sizeof(UserProfile)); //step 1: set APN, User name, password, PIN code strcpy(UserProfile.WAPN,"INTERNET"); strcpy(UserProfile.WName,""); strcpy(UserProfile.WPW,""); strcpy(UserProfile.WPINCODE,""); // Get lib version GM_GetLibVer(SendData); Print("lib information:%s\r\n",SendData); //step 2: initial modem GM_InitModem(UserProfile); //step 3: check modem status Print("Waiting register"); while(GM_CheckInitStatus() != GM_NOERROR) { Print("."); DelayMs(1000); } Print("\r\n"); while(Tmp != 0) { if(Res != 0 && Res!=2) { //step 4: Create server --> (8) //step 5: Test server function Print("\r\n"); Print("(1)Get server status.\r\n"); Print("(2)Send data to client.\r\n"); Print("(3)Check and read data from server.\r\n"); Print("(4)Check signal.\r\n"); Print("(5)Check modem register.\r\n"); Print("(6)Close socket.\r\n"); Print("(7)Close server.\r\n"); Print("(8)Create Server.\r\n"); Print("(9)Restart modem.\r\n"); Print("(0)Quit\r\n"); Print("\r\n"); Scanf("%d",&Tmp); } switch(Tmp) { case 1: Res = GM_GetServerInfo(&MyServer); if(Res == 1) { Print("MyServer.SPort:%u\r\n",MyServer.SPort); Print("MyServer.SIP:%s\r\n",MyServer.SIP); Print("MyServer.IsListening:%d\r\n",MyServer.IsListing); for(i=0; i<7; i++) { Print("Client state:%d\r\n",MyServer.SMyClient[i].IsConnected); } } else if(Res == -1) Print("cmd Error"); else if(Res == -2) Print("modem isn't initial"); break; case 2: if(Res != 0) { Print("Enter send client Num:"); Scanf("%d",&SendClient); // client number is 0~6 Print("Send data:"); Scanf("%s",SendData); SendLen = strlen(SendData); } Res = GM_SendData(SendClient,SendData,SendLen); if(Res == -1) Print("cmd Error"); else if(Res == -2) Print("modem isn't initial\r\n"); else if(Res == -3) Print("Client num is error\r\n"); else if(Res == -4) Print("Send len is error\r\n"); else if(Res == -5) Print("Client isn't connection\r\n"); break; case 3: memset(&GPRSData,0,sizeof(_GPRS_DATA)); Res = GM_GetPacket(&GPRSData); if(Res == 1) { Print("Res:%d\r\n",Res); Print("Client NO.:%d\r\n",GPRSData.Client_Socket); Print("Client IP:%s\r\n",GPRSData.Client_IP); Print("Data Length:%d\r\n",GPRSData.RecvDataLen); Print("======= Data =======\r\n"); //DebugMsg_Hex(GPRSData.RecvData,GPRSData.RecvDataLen); for(i=0; i