⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sgip

📁 一个Delphi6.0的SGIP例子 包含了一个服务端和一个客户端
💻
📖 第 1 页 / 共 5 页
字号:
      char;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ScheduleTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:array[0..15] 
      of 
      char;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReportFlag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TP_pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TP_udhi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageCoding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageLength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :longword;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageContent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:array[0..160] 
      of 
      char;&nbsp;&nbsp;//长度为&nbsp;&nbsp;MessageLength;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Reserve&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :array[0..7] of 
      char;<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;Submit_Resp=Record<BR>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Reserve&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :array[0..7] of 
      char;<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;//<BR>&nbsp;&nbsp;XDeliver=Record<BR>&nbsp;&nbsp;&nbsp;&nbsp;UserNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:array[0..20] 
      of 
      char;<BR>&nbsp;&nbsp;&nbsp;&nbsp;SPNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:array[0..27] 
      of 
      char;<BR>&nbsp;&nbsp;&nbsp;&nbsp;{TP_pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TP_udhi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageCoding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageLength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :longword;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageContent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:array[0..254] 
      of 
      char;&nbsp;&nbsp;//长度为&nbsp;&nbsp;MessageLength;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Reserver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:array[0..7] 
      of 
      char;<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;Deliver_Resp=Record<BR>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Reserve&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :array[0..7] of char;<BR>&nbsp;&nbsp;end;</P>
      <P>&nbsp;&nbsp;//<BR>&nbsp;&nbsp;XReport=Record<BR>&nbsp;&nbsp;&nbsp;&nbsp;SubSequNumber1,SubSequNumber2,SubSequNumber3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:longword;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReportType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;UserNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:array[0..20] 
      of 
      char;<BR>&nbsp;&nbsp;&nbsp;&nbsp;State&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ErrorCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Reserve&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :array[0..7] of 
      char;<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;Report_Resp=Record<BR>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Reserve&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      :array[0..7] of char;<BR>&nbsp;&nbsp;end;</P>
      <P>implementation<BR>end.</P>
      <P><BR><SPAN class=sft><BR><BR>____________________<BR><BR>
      <P align=right>第5篇</P></SPAN></TD></TR>
  <TR>
    <TD vAlign=top bgColor=#e3e5e5>
      <TABLE class=sft style="FILTER: glow(color=#FFFFFF,strength=1)" 
      cellSpacing=0 cellPadding=3 width="100%" border=0>
        <TBODY>
        <TR>
          <TD>dulcet99</TD></TR></TBODY></TABLE>头衔:侠客<BR>来自:山东<BR>发帖:53<BR>注册:2002年10月<BR><IMG 
      src="SGIP的delphi源码.files/24.gif"></IMG></TD>
    <TD vAlign=top bgColor=#e3e5e5>发表于: 2002-11-1 20:41:59&nbsp;&nbsp;<A 
      href="javascript:openWindow('viewuser.asp?name=dulcet99')"><IMG alt=查看作者档案 
      src="SGIP的delphi源码.files/profile.gif" border=0></A>&nbsp;&nbsp;<A 
      href="mailto:dulcet99@163.com"><IMG alt=给作者发电子邮件 
      src="SGIP的delphi源码.files/email.gif" border=0></A>&nbsp;&nbsp;<A 
      href="javascript:openWindow('%20')"><IMG alt=访问作者主页 
      src="SGIP的delphi源码.files/homepage.gif" border=0></A>&nbsp;&nbsp;<A 
      href="javascript:openWindow('viewip.asp?reply_id=3677')"><IMG alt=查看IP地址 
      src="SGIP的delphi源码.files/ip.gif" border=0></A>&nbsp;&nbsp;<A 
      href="javascript:openWindow('http://search.tencent.com/cgi-bin/friend/user_show_info?ln=35079175')"><IMG 
      alt=QQ号码:35079175 src="SGIP的delphi源码.files/qq.gif" 
      border=0></A>&nbsp;&nbsp;<IMG alt="MSN号码: " 
      src="SGIP的delphi源码.files/msn.gif" 
      border=0></A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A 
      href="http://skybird.9s9s.com/bbs/post.asp?method=edit&amp;reply_id=3677&amp;auth=576&amp;forum_title=&amp;topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&amp;forum_id=7&amp;topic_id=1129&amp;page=1"><IMG 
      alt=编辑修改 src="SGIP的delphi源码.files/edit.gif" border=0></A> <A 
      href="http://skybird.9s9s.com/bbs/delreply.asp?reply_id=3677&amp;topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&amp;forum_id=7&amp;forum_title=☆协议理解☆"><IMG 
      alt=删除回复 src="SGIP的delphi源码.files/del.gif" border=0></A> <A 
      href="http://skybird.9s9s.com/bbs/post.asp?forum_id=7&amp;reply_id=3677&amp;method=reply&amp;type=quotereply&amp;forum_title=%A1%EE%D0%AD%D2%E9%C0%ED%BD%E2%A1%EE&amp;topic_id=1129&amp;topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&amp;M="><IMG 
      alt=引用回复 src="SGIP的delphi源码.files/quote.gif" border=0></A> 
      <HR class=sft noShade SIZE=1>
      <BR><BR><BR>//、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、//<BR>服务端<BR>unit main;
      <P></P>
      <P>interface</P>
      <P>uses<BR>&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, 
      Graphics, Controls, Forms,<BR>&nbsp;&nbsp;Dialogs, xy, ScktComp, 
      StdCtrls,winsock;</P>
      <P>type<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;TForm1 = 
      class(TForm)<BR>&nbsp;&nbsp;&nbsp;&nbsp;Memo1: 
      TMemo;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ServerSocket1: 
      TServerSocket;<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure 
      ServerSocket1ClientRead(Sender: 
      TObject;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Socket: 
      TCustomWinSocket);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure 
      ServerSocket1ClientError(Sender: 
      TObject;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Socket: TCustomWinSocket; 
      ErrorEvent: TErrorEvent;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var 
      ErrorCode: Integer);<BR>&nbsp;&nbsp;private<BR>&nbsp;&nbsp;&nbsp;&nbsp;{ 
      Private declarations }<BR>&nbsp;&nbsp;public<BR>&nbsp;&nbsp;&nbsp;&nbsp;{ 
      Public declarations }<BR>&nbsp;&nbsp;end;<BR>var<BR>&nbsp;&nbsp;Form1: 
      TForm1;</P>
      <P>implementation</P>
      <P>{$R *.dfm}</P>
      <P>procedure TForm1.ServerSocket1ClientRead(Sender: 
      TObject;<BR>&nbsp;&nbsp;Socket: 
      TCustomWinSocket);<BR>&nbsp;&nbsp;type<BR>&nbsp;&nbsp;&nbsp;&nbsp;SendPack 
      = packed 
      record<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head:&nbsp;&nbsp;SGIPHead;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resp:&nbsp;&nbsp;Bind_Resp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;var<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReHead:SGIPHead;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sresp:Bind_Resp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReBind:xBind;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReDeliver:XDeliver;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReReport:XReport;<BR>&nbsp;&nbsp;&nbsp;&nbsp;i1,i2:integer;<BR>&nbsp;&nbsp;&nbsp;&nbsp;str:string;<BR>&nbsp;&nbsp;&nbsp;&nbsp;S_Number1,S_Number2,S_Number3,longI1:longword;<BR>&nbsp;&nbsp;&nbsp;&nbsp;s_Pack:SendPack;<BR>begin<BR>&nbsp;&nbsp;fillchar(sresp,sizeof(sresp),0);<BR>&nbsp;&nbsp;fillchar(ReHead,sizeof(ReHead),0);<BR>&nbsp;&nbsp;i1:=Socket.ReceiveBuf(ReHead,sizeof(ReHead));<BR>&nbsp;&nbsp;if 
      i1&lt;&gt;sizeof(ReHead) 
      then<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('Recv 
      message Error 
      exit');<BR>&nbsp;&nbsp;&nbsp;&nbsp;exit;<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;S_Number1:=ReHead.SNumber1;<BR>&nbsp;&nbsp;S_Number2:=ReHead.SNumber2;<BR>&nbsp;&nbsp;S_Number3:=ReHead.SNumber3;<BR>&nbsp;&nbsp;ReHead.MessageLength:=ntohl(ReHead.MessageLength);<BR>&nbsp;&nbsp;ReHead.CommandId:=ntohl(ReHead.CommandId);<BR>&nbsp;&nbsp;ReHead.SNumber1:=ntohl(ReHead.SNumber1);<BR>&nbsp;&nbsp;ReHead.SNumber2:=ntohl(ReHead.SNumber2);<BR>&nbsp;&nbsp;ReHead.SNumber3:=ntohl(ReHead.SNumber3);<BR>&nbsp;&nbsp;memo1.Lines.Add('read 
      SMG 
      message');<BR>&nbsp;&nbsp;memo1.Lines.Add(inttostr(ReHead.MessageLength));<BR>&nbsp;&nbsp;memo1.Lines.Add(inttostr(ReHead.CommandId));<BR>&nbsp;&nbsp;memo1.Lines.Add(inttostr(ReHead.SNumber1));<BR>&nbsp;&nbsp;memo1.Lines.Add(inttostr(ReHead.SNumber2));<BR>&nbsp;&nbsp;memo1.Lines.Add(inttostr(ReHead.SNumber3));<BR>&nbsp;&nbsp;if 
      ReHead.CommandId=SGIP_UNBIND 
      then<BR>&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//断开连接<BR>&nbsp;&nbsp;&nbsp;&nbsp;FillChar(ReHead,SizeOf(ReHead),0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReHead.MessageLength:=htonl(SizeOf(ReHead));<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReHead.CommandId:=htonl(SGIP_UNBIND_RESP);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReHead.SNumber1:=S_Number1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReHead.SNumber2:=S_Number2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReHead.SNumber3:=S_Number3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;i1:=socket.SendBuf(ReHead,sizeof(ReHead));<BR>&nbsp;&nbsp;&nbsp;&nbsp;if 
      i1&lt;&gt;sizeof(ReHead) 
      then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('Send 
      SGIP_UNBIND_Resp 
      Error')<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('Send 
      SGIP_UNBIND_Resp OK');<BR>&nbsp;&nbsp;end<BR>&nbsp;&nbsp;else if 
      ReHead.CommandId=SGIP_BIND 
      then<BR>&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //SMG向SP发送一条MO短消息<BR>&nbsp;&nbsp;&nbsp;&nbsp;FillChar(s_Pack,SizeOf(s_Pack),0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;FillChar(ReBind,SizeOf(ReBind),0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;socket.ReceiveBuf(ReBind,SizeOf(ReBind));<BR>&nbsp;&nbsp;&nbsp;&nbsp;s_Pack.head.MessageLength:=htonl(SizeOf(s_Pack));<BR>&nbsp;&nbsp;&nbsp;&nbsp;s_Pack.head.CommandId:=htonl(SGIP_BIND_RESP);<BR>&nbsp;&nbsp;&nbsp;&nbsp;s_Pack.head.SNumber1:=S_Number1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;s_Pack.head.SNumber2:=S_Number2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;s_Pack.head.SNumber3:=S_Number3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;s_Pack.resp.Result:=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;i1:=socket.SendBuf(s_Pack,SizeOf(s_Pack));<BR>&nbsp;&nbsp;&nbsp;&nbsp;if 
      i1&lt;&gt;SizeOf(s_Pack) 
      then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('send 
      SGIP_Bind_Resp 
      Error')<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('Send 
      SGIP_bind_Resp');<BR>&nbsp;&nbsp;end<SPAN 
      class=sft><BR><BR>____________________<BR><BR>
      <P align=right>第6篇</P></SPAN></TD></TR>
  <TR>
    <TD vAlign=top bgColor=#ffffff>
      <TABLE class=sft style="FILTER: glow(color=#FFFFFF,strength=1)" 
      cellSpacing=0 cellPadding=3 width="100%" border=0>
        <TBODY>
        <TR>
          <TD>dulcet99</TD></TR></TBODY></TABLE>头衔:侠客<BR>来自:山东<BR>发帖:53<BR>注册:2002年10月<BR><IMG 
      src="SGIP的delphi源码.files/24.gif"></IMG></TD>
    <TD vAlign=top bgColor=#ffffff>发表于: 2002-11-1 20:42:11&nbsp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -