bsp; ''''+inttostr(ntohl(cHead.SNumber3))); memo1.Lines.Add(''''cBind.LonginType ''''+inttostr(cBind_resp.Result)); stream1.Free; end;
procedure TForm1.Button4Click(Sender: TObject); file://type {abc=packed record head:SGIPHead; submit:xSubmit; end;} var FV_Date1_S,FV_Date2_S:string; i,SendSize:integer; file://xxx:abc; stream2:twinsocketstream; abc,bc:longword; line1,line2:longword; begin stream2:=twinsocketstream.Create(clientsocket1.Socket,5000); SendSize:=0; memo1.Lines.Add(''''-------------------------submit--------------------------''''); if not ClientSocket1.Active then begin memo1.Lines.Add(''''-------------------客户端没有打开,submit失败-------------''''); exit; end; DateTimeToString(FV_Date1_S,''''mmddhhnnss'''',now); DateTimeToString(FV_Date2_S,''''zzz'''',now); FillChar(sSubmit,sizeof(sSubmit),0); FillChar(sHead,sizeof(sHead),0); with ssubmit do begin strpcopy(SPNumber,''''4488'''');//; ChargeNumber :=''''8613188890924''''; UserCount :=1; file://1-100 {for i:=1 to UserCount do begin file://strpcopy(UserNumber[i-1].TelN,''''8613065073355'''');//+T_Tel);// :array of TelCount; file://长度为UserCount UserNumber[i-1].TelN:=''''8613011725853''''; end;} UserNumber:=''''8613188890924''''; CorpID:=''''41027'''';//CorpID:=''''4488'''';//strpcopy(CorpID,FV_corpID); ServiceType:=''''4488'''';//FV_SPNumber);//''''4488''''; FeeType :=1; FeeValue :=''''0''''; GivenValue :=''''0''''; AgentFlag :=0; MOrelatetoMTFlag :=2; Priority :=0; ExpireTime :=''''''''; ScheduleTime :=''''''''; ReportFlag :=1; TP_pid :=0; tp_udhi :=0; MessageCoding :=15; MessageType :=0; MessageLength :=htonl(161); strpcopy(MessageContent,T_msg); file://长度为 MessageLength; file://Reserve :=''''''''; end; {line1:=sizeof(sHead); line2:=sizeof(sSubmit);} with sHead do begin abc:=htonl(FV_SNumber); MessageLength:=htonl(sizeof(sHead)+sizeof(sSubmit)-3); CommandId:=htonl(SGIP_Submit); SNumber1:=abc; SNumber2:=htonl(StrToInt(FV_Date1_S)); SNumber3:=htonl(StrToInt(FV_Date2_S)); end; line1:=stream2.Write(shead,sizeof(shead)); line2:=stream2.Write(sSubmit,sizeof(sSubmit)-3); if stream2.WaitForData(5000) then begin fillchar(cHead,sizeof(cHead),0); fillchar(cSubmit_Resp,sizeof(cSubmit_Resp),0); memo1.Lines.Add(''''read submit Head ..............''''); try stream2.ReadBuffer(cHead,sizeof(cHead)); stream2.ReadBuffer(cSubmit_Resp,sizeof(cSubmit_Resp)); except on e:exception do memo1.Lines.Add(e.Message); end; memo1.Lines.Add(''''read submit csubmit_resp ..............''''); file://stream2.ReadBuffer(cBind_Resp,sizeof(cBind_resp)); end; stream2.Free; end;
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var commandI,PackSize:Longword; Recv1I,Recv2I:integer; begin FillChar(sHead,sizeof(sHead),0); FillChar(sBind,sizeof(sBind),0); Recv1I:=socket.ReceiveBuf(sHead,sizeof(sHead)); commandI:=ntohl(sHead.CommandId); PackSize:=ntohl(sHead.MessageLength); if commandI=SGIP_UNBIND_RESP then begin memo1.Lines.Add(''''------------------接收到SGIP_UNBIND_RESP请求------------------''''); exit; end; Recv2I:=socket.ReceiveBuf(sBind,sizeof(sBind)); if commandI=SGIP_BIND_RESP then memo1.Lines.Add(''''---------------------SGIP_BIND_RESP------------------'''') else if commandI=SGIP_SUBMIT_RESP then memo1.Lines.Add(''''---------------------SGIP_SUBMIT_RESP----------------'''') else memo1.Lines.Add(''''---------------------''''+inttostr(commandI)+''''------------------''''); memo1.Lines.Add(''''MessageLength ''''+inttostr(ntohl(sHead.MessageLength))); memo1.Lines.Add(''''CommandId ''''+inttostr(commandI)); memo1.Lines.Add(''''SNumber ''''+inttostr(ntohl(sHead.SNumber1))+'''' ''''+ inttostr(ntohl(sHead.SNumber2))+'''' ''''+inttostr(ntohl(sHead.SNumber3))); memo1.Lines.Add(''''Result ''''+inttostr(sBind_Resp.Result)); memo1.Lines.add(''''------------------end SGIP_UNBIND_RESP-------------------''''); end;
procedure TForm1.Button7Click(Sender: TObject); var FV_Date1_S,FV_Date2_S:string; stream3:TWinSocketStream; begin Stream3:=TWinSocketStream.Create(clientSocket1.Socket,5000); memo1.Lines.Add(''''-------------------向服务端发送UnBIND请求--------------------''''); if not ClientSocket1.Active then begin memo1.Lines.Add(''''客户端没有打开''''); stream3.free; exit; end; DateTimeToString(FV_Date1_S,''''mmddhhnnss'''',now); DateTimeToString(FV_Date2_S,''''zzz'''',now); FillChar(sHead,sizeof(sHead),0); sHead.MessageLength:=htonl(sizeof(sHead)); sHead.CommandId:=htonl(SGIP_UNBIND); sHead.SNumber1:=htonl(FV_SNumber); sHead.SNumber2:=htonl(StrToInt(FV_Date1_S)); sHead.SNumber3:=htonl(StrToInt(FV_Date2_S)); stream3.Write(sHead,20); FillChar(sHead,20,0); if stream3.WaitForData(5000) then begin stream3.ReadBuffer(sHead,20); end; stream3.Free; end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var RecvSize1,RecvSize2,DeSize:integer; commandI,MessageSize:LongWord; begin RecvSize1:=0; RecvSize2:=0; FillChar(cHead,SizeOf(cHead),0);
RecvSize1:=socket.ReceiveBuf(cHead,SizeOf(cHead)); commandI:=ntohl(cHead.CommandId); MessageSize:=ntohl(cHead.MessageLength); if commandI=SGIP_BIND then begin memo1.Lines.Add(''''*********************接收到Bind请求*********************''''); FillChar(cBind,SizeOf(cBind),0); FillChar(cBind_Resp,SizeOf(cBind_Resp),0); RecvSize2:=Socket.ReceiveBuf(cBind,MessageSize-RecvSize1); if (RecvSize2+RecvSize1)<>MessageSize then begin memo1.Lines.Add(''''**********************bind数据接收错误*******************''''); exit; end; RecvSize2:=0;RecvSize1:=0; cHead.CommandId:=htonl(SGIP_BIND_RESP); cHead.MessageLength:=htonl(sizeof(cHead)+sizeof(cBind_Resp)); cBind_Resp.Result:=0; RecvSize1:=Socket.SendBuf(cHead,SizeOf(cHead)); RecvSize2:=Socket.SendBuf(cBind_Resp,SizeOf(cBind_Resp)); if (RecvSize1+RecvSize2)<>ntohl(cHead.MessageLength) then begin memo1.Lines.Add(''''**** 上一页 [1] [2] [3] [4] [5] 下一页 |