📄 main.~cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "main.h"
#include "test.h"
#include "cmpp.h"
#include "GB2UNICODE.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SUIForm"
#pragma link "SUIMainMenu"
#pragma link "SUIToolBar"
#pragma link "SUIButton"
#pragma link "SUIImagePanel"
#pragma link "SUIComboBox"
#pragma link "SUIEdit"
#pragma resource "*.dfm"
int login_stat=0 ;
int activeneed=0 ;
int intClientError ;
int iIMSG_Port=7890 ;
AnsiString strIMSG_IP="127.0.0.1" ;
AnsiString strIMSG_User="901234" ;
AnsiString strIMSG_Pass="1234" ;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Recv_Buf *recv_buf;unsigned int recv_CommID;int UDLen;
UDLen= Socket->ReceiveLength(); //接收收到的数据长度
recv_buf=new(Recv_Buf);memset(recv_buf,0,UDLen);
Socket->ReceiveBuf(recv_buf,UDLen); //数据接收
activeneed = 0;
recv_CommID = ntohl(recv_buf->Command_Id);
if (recv_CommID == CMPP_ACTIVE_TEST_RESP) //收到ACTIVE_TEST_Resp 消息
{
CMPP_ACTIVE_TEST_RESP_tag *recv_active_resp;
recv_active_resp=new(CMPP_ACTIVE_TEST_RESP_tag);
memset(recv_active_resp,0,sizeof(CMPP_ACTIVE_TEST_RESP_tag));
memcpy(recv_active_resp,recv_buf,UDLen);
if (recv_active_resp->Reserved==0x00)
{
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Active_Test_Resp Success!");
login_stat = 0;
}else{
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Active_Test_Resp Fail "+IntToStr(recv_active_resp->Reserved));
login_stat = 1;
}
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
delete [] recv_active_resp;
}
if (recv_CommID == CMPP_SUBMIT_RESP) //收到Submit_Resp 消息
{
CMPP_SUBMIT_RESP_tag *recv_Submit_resp;
recv_Submit_resp=new(CMPP_SUBMIT_RESP_tag);
memset(recv_Submit_resp,0,UDLen);
memcpy(recv_Submit_resp,recv_buf,UDLen);
if (recv_Submit_resp->Result == 0x00)
{
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Submit Success!");
}else{
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Submit Fail "+IntToStr(recv_Submit_resp->Result));
}
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
delete [] recv_Submit_resp;
}
if (recv_CommID == CMPP_DELIVER) //收到 MO 消息
{
CMPP_DELIVER_tag *Deliver;unsigned __int64 DelivMsg_id;
AnsiString phone;AnsiString beijiao;AnsiString zhulei;AnsiString UData;
Deliver=new(CMPP_DELIVER_tag);memset(Deliver,0,sizeof(CMPP_DELIVER_tag));
memcpy(Deliver,recv_buf,UDLen);
byte ISReport;ISReport = Deliver->Registered_Delivery;
if (ISReport == 0)
{
CMPPDeliverGet(Deliver,UData,DelivMsg_id,beijiao,phone,ISReport);
Form1->Caption = "MO";
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: MO message");
Memo1->Lines->Add("phone:"+phone+" Dest_ID:"+beijiao+" message:"+UData);
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
CMPPDeliverResp(Deliver->Sequence_Id,Deliver->Msg_Id);
}else{
CMPP_Report_tag *buf_Report;__int64 Report_ID;
buf_Report=new(CMPP_Report_tag);memset(buf_Report,0,sizeof(CMPP_Report_tag));
memcpy(buf_Report,Deliver->Msg_Content,sizeof(CMPP_Report_tag));
Report_ID = buf_Report->Msg_ID;
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Report message");
Memo1->Lines->Add("Msg_ID:"+IntToStr(Report_ID)+" message:"+buf_Report->Stat);
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
CMPPDeliverResp(Deliver->Sequence_Id,Deliver->Msg_Id);
delete [] buf_Report;
}
delete [] Deliver;
}
if (recv_CommID == CMPP_CONNECT_RESP) //收到 Connect_Resp 消息
{
CMPP_CONNECT_RESP_tag *recv_Connect_resp;
recv_Connect_resp=new(CMPP_CONNECT_RESP_tag);
memset(recv_Connect_resp,0,UDLen);
memcpy(recv_Connect_resp,recv_buf,UDLen);
if (recv_Connect_resp->Status == 0)
{
Shape1->Brush->Color = clLime;
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Login Success!");
}else{
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Login Fail "+IntToStr(recv_Connect_resp->Status));
}
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
free(recv_Connect_resp);
}
if (recv_CommID == CMPP_TERMINATE) //网关断开连接
{
CMPPTerminateResp(recv_buf->Sequence_Id);
login_stat = 1;
Shape1->Brush->Color = clRed;
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Terminate");
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
}
delete [] recv_buf;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
intClientError = ErrorCode;
Memo1->Lines->Add(DateTimeToStr(Now())+" System info: Socket error "+IntToStr(ErrorCode));
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
ErrorCode = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientDisconnect(TObject *Sender,
TCustomWinSocket *Socket)
{
login_stat = 1;
Shape1->Brush->Color = clRed;
Memo1->Lines->Add(DateTimeToStr(Now())+" System info: Socket disconnect!");
Memo1->Lines->Add("----------------------------------------------------------------------------------------------------------------------------");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (activeneed >=3)
CMPPActiveTest();
if (activeneed == 3)
{
activeneed=0;
}else{
activeneed=activeneed+1;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
FrmTest->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton1Click(TObject *Sender)
{
if (login_stat != 1)
{
StandardToolBar->Buttons[0]->Down = false ;
StandardToolBar->Buttons[1]->Down = false ;
int iRet=-1 ;
if (Timer1->Enabled == false)
{
iRet = CMPPInt(strIMSG_IP,iIMSG_Port);
}
strIMSG_User = Trim(suiEdit_LgUser->Text) ;
strIMSG_Pass = Trim(suiEdit_LgPass->Text) ;
iRet=CMPPConnect(strIMSG_User,strIMSG_Pass) ;
if (iRet == 0)
{
Timer1->Enabled = true ;
login_stat = 1 ;
StandardToolBar->Buttons[0]->Down = true ;
}
else
{
MessageBox(NULL,"Socket not conneted","errinfo",MB_OK);
}
}
else
{
StandardToolBar->Buttons[0]->Down = true ;
StandardToolBar->Buttons[1]->Down = false ;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton2Click(TObject *Sender)
{
login_stat = 0 ;
CMPPTerminate();
StandardToolBar->Buttons[0]->Down = false;
StandardToolBar->Buttons[1]->Down = false;
Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton4Click(TObject *Sender)
{
// FrmConfig->ShowModal();
suiPanel_Setup->Pop() ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
Panel1->Width = Form1->Width-8;
Panel2->Width = Panel1->Width/2-20;
Panel2->Height = 289;
Panel2->Top = 8;
Panel3->Top = Panel2->Top;
Panel3->Height = Panel2->Height;
Panel3->Width = Panel2->Width;
Panel3->Left = Panel1->Width/2 + 10;
Shape1->Left = Panel3->Width-Shape1->Width-5;
Shape1->Top =5;
Memo1->Width = Form1->Width - 8;
Memo1->Height = Form1->Height - 385;
Memo2->Width = Panel2->Width - 80;
Memo3->Width = Memo2->Width;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
CMPPTerminate() ;
Client->Close() ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Recv_Buf *recv_buf;unsigned int recv_CommID;int UDLen;
UDLen= Socket->ReceiveLength(); //接收收到的数据长度
recv_buf=new(Recv_Buf);memset(recv_buf,0,UDLen);
CMPP_SUBMIT_tag *submit_buf;
submit_buf=new(CMPP_SUBMIT_tag);
memset(submit_buf,0,UDLen);
char b[200];
memset(b,0,200);
Socket->ReceiveBuf(b,UDLen); //数据接收
activeneed = 0;
recv_CommID = ntohl(recv_buf->Command_Id);
if (recv_CommID == CMPP_ACTIVE_TEST_RESP) //收到ACTIVE_TEST_Resp 消息
{
CMPP_ACTIVE_TEST_RESP_tag *recv_active_resp;
recv_active_resp=new(CMPP_ACTIVE_TEST_RESP_tag);
memset(recv_active_resp,0,sizeof(CMPP_ACTIVE_TEST_RESP_tag));
memcpy(recv_active_resp,recv_buf,UDLen);
if (recv_active_resp->Reserved==0x00)
{
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Active_Test_Resp Success!");
login_stat = 0;
}else{
Memo1->Lines->Add(DateTimeToStr(Now())+" Receive Message: Active_Test_Resp Fail "+IntToStr(recv_active_resp->Reserved));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -