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

📄 sgip

📁 一个Delphi6.0的SGIP例子 包含了一个服务端和一个客户端
💻
📖 第 1 页 / 共 5 页
字号:
      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?topic_id=1129')"><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=editTopic&amp;reply_id=1129&amp;auth=576&amp;forum_title=%A1%EE%D0%AD%D2%E9%C0%ED%BD%E2%A1%EE&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/deltopic.asp?topic_id=1129&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;method=reply&amp;type=quotetopic&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>在网上找了好长时间,也没有发现有SGIP的例子,伤感之余,终于做了一个Delphi6.0的SGIP例子<BR>包含了一个服务端和一个客户端,协议共用,服务端为非阻塞长连接,客户端为阻塞短连接,<BR>程序写的很乱,风格也很差,希望高手多多指教 <BR>(dulcet99@163.com,dulcet99@sina.com)
      <P></P>
      <P>//客户端<BR>unit TestMain;</P>
      <P>interface</P>
      <P>uses<BR>&nbsp;&nbsp;Windows, Messages, SysUtils, Variants, Classes, 
      Graphics, Controls, Forms,<BR>&nbsp;&nbsp;Dialogs, ScktComp, StdCtrls, 
      ExtCtrls, xy, 
      winsock;<BR>const<BR>&nbsp;&nbsp;FV_SNumber=3053112345;<BR>&nbsp;&nbsp;FV_LoginPass='hi';<BR>&nbsp;&nbsp;FV_LoginName='hi';<BR>&nbsp;&nbsp;FV_SPNumber='12345';<BR>&nbsp;&nbsp;T_Tel='13000000000';<BR>&nbsp;&nbsp;FV_corpID='12345';<BR>&nbsp;&nbsp;T_msg='我在天空写下你的名字,没有被风带走';<BR>type<BR>&nbsp;&nbsp;TForm1 
      = class(TForm)<BR>&nbsp;&nbsp;&nbsp;&nbsp;Memo1: 
      TMemo;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button1: 
      TButton;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ClientSocket1: 
      TClientSocket;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button3: 
      TButton;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button4: 
      TButton;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button2: 
      TButton;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button5: 
      TButton;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button6: 
      TButton;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Button7: 
      TButton;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ServerSocket1: 
      TServerSocket;<BR>&nbsp;&nbsp;&nbsp;&nbsp;panel1: 
      TPanel;<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure Button2Click(Sender: 
      TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure Button1Click(Sender: 
      TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure Button6Click(Sender: 
      TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure Button5Click(Sender: 
      TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure Button3Click(Sender: 
      TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure Button4Click(Sender: 
      TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure ClientSocket1Read(Sender: 
      TObject; Socket: TCustomWinSocket);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure 
      Button7Click(Sender: TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure 
      ServerSocket1ClientRead(Sender: 
      TObject;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Socket: 
      TCustomWinSocket);<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;&nbsp;&nbsp;//客户端协议定义<BR>&nbsp;&nbsp;&nbsp;&nbsp;sHead:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SGIPHead;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //消息头定义<BR>&nbsp;&nbsp;&nbsp;&nbsp;sBind:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XBind;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//连接请求验证<BR>&nbsp;&nbsp;&nbsp;&nbsp;sBind_Resp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      Bind_Resp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//响应连接请求验证<BR>&nbsp;&nbsp;&nbsp;&nbsp;sSubmit:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XSubmit;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SP-&gt;SMG提交短信<BR>&nbsp;&nbsp;&nbsp;&nbsp;sSubmit_Resp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      Submit_Resp;&nbsp;&nbsp;&nbsp;&nbsp;//SMG响应SP提交的短信状态<BR>&nbsp;&nbsp;&nbsp;&nbsp;sDeliver:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      XDeliver;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //SMG-&gt;SP提交短信<BR>&nbsp;&nbsp;&nbsp;&nbsp;sDeliver_Resp:&nbsp;&nbsp;&nbsp;&nbsp; 
      Deliver_Resp;&nbsp;&nbsp;//SP响应SMG提交的短信状态<BR>&nbsp;&nbsp;&nbsp;&nbsp;sReport:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XReport;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SMG-&gt;SP先前的短信状态<BR>&nbsp;&nbsp;&nbsp;&nbsp;sReport_Resp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      Report_Resp;&nbsp;&nbsp;&nbsp;&nbsp;//响应命令执行状况<BR>&nbsp;&nbsp;&nbsp;&nbsp;//服务端协议定义<BR>&nbsp;&nbsp;&nbsp;&nbsp;cHead:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SGIPHead;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //消息头定义<BR>&nbsp;&nbsp;&nbsp;&nbsp;cBind:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XBind;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//连接请求验证<BR>&nbsp;&nbsp;&nbsp;&nbsp;cBind_Resp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      Bind_Resp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//响应连接请求验证<BR>&nbsp;&nbsp;&nbsp;&nbsp;cSubmit:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XSubmit;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SP-&gt;SMG提交短信<BR>&nbsp;&nbsp;&nbsp;&nbsp;cSubmit_Resp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      Submit_Resp;&nbsp;&nbsp;&nbsp;&nbsp;//SMG响应SP提交的短信状态<BR>&nbsp;&nbsp;&nbsp;&nbsp;cDeliver:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      XDeliver;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //SMG-&gt;SP提交短信<BR>&nbsp;&nbsp;&nbsp;&nbsp;cDeliver_Resp:&nbsp;&nbsp;&nbsp;&nbsp; 
      Deliver_Resp;&nbsp;&nbsp;//SP响应SMG提交的短信状态<BR>&nbsp;&nbsp;&nbsp;&nbsp;cReport:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XReport;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SMG-&gt;SP先前的短信状态<BR>&nbsp;&nbsp;&nbsp;&nbsp;cReport_Resp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      Report_Resp;&nbsp;&nbsp;&nbsp;&nbsp;//响应命令执行状况<BR>&nbsp;&nbsp;end;</P>
      <P>var<BR>&nbsp;&nbsp;Form1: TForm1;</P>
      <P>implementation</P>
      <P>{$R *.dfm}</P>
      <P>procedure TForm1.Button2Click(Sender: 
      TObject);<BR>begin<BR>&nbsp;&nbsp;ClientSocket1.Active:=false;<BR>&nbsp;&nbsp;if 
      ClientSocket1.Active 
      then<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('客户端关闭失败')<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('客户端关闭成功');<BR>end;</P>
      <P>procedure TForm1.Button1Click(Sender: 
      TObject);<BR>begin<BR>&nbsp;&nbsp;ClientSocket1.Active:=true;<BR>&nbsp;&nbsp;if 
      ClientSocket1.Active 
      then<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('客户端打开成功')<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('客户端打开失败');<BR>end;</P>
      <P>procedure TForm1.Button6Click(Sender: 
      TObject);<BR>begin<BR>&nbsp;&nbsp;ServerSocket1.Active:=true;<BR>&nbsp;&nbsp;if 
      ServerSocket1.Active 
      then<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('服务端打开成功')<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('服务端打开失败');<BR>end;</P>
      <P>procedure TForm1.Button5Click(Sender: 
      TObject);<BR>begin<BR>&nbsp;&nbsp;ServerSocket1.Active:=false;<BR>&nbsp;&nbsp;if 
      ServerSocket1.Active 
      then<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('服务端关闭失败')<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('服务端关闭成功');<BR>end;<BR></B><FONT 
      font-size="9pt;color:#333333"><BR><BR>____________________<BR><BR>
      <P align=right>第1篇</P></FONT></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:36:30&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=3673')"><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=3673&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=3673&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=3673&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>procedure TForm1.Button3Click(Sender: 
      TObject);<BR>var<BR>&nbsp;&nbsp;FV_Date1_S,FV_Date2_S:string;<BR>&nbsp;&nbsp;str_i,SendSize:integer;<BR>&nbsp;&nbsp;stream1:TWinSocketStream;<BR>&nbsp;&nbsp;abc,bc:longword;<BR>begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;stream1:=TWinSocketStream.Create(ClientSocket1.Socket,30000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('-------------------向服务端发送BIND请求--------------------');<BR>&nbsp;&nbsp;&nbsp;&nbsp;if 
      not ClientSocket1.Active 
      then<BR>&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('客户端没有打开');<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit;<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DateTimeToString(FV_Date1_S,'mmddhhnnss',now);<BR>&nbsp;&nbsp;&nbsp;&nbsp;DateTimeToString(FV_Date2_S,'zzz',now);<BR>&nbsp;&nbsp;&nbsp;&nbsp;FillChar(sBind,sizeof(sBind),0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;FillChar(sHead,sizeof(sHead),0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;str_i:=sizeof(sHead)+sizeof(sBind);<BR>&nbsp;&nbsp;&nbsp;&nbsp;sBind.LonginType:=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;strpcopy(sBind.LonginPass,FV_LoginPass);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strpcopy(sBind.LonginName,FV_LoginName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;abc:=htonl(FV_SNumber);<BR>&nbsp;&nbsp;&nbsp;&nbsp;sHead.MessageLength:=htonl(str_i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;sHead.CommandId:=htonl(SGIP_Bind);<BR>&nbsp;&nbsp;&nbsp;&nbsp;sHead.SNumber1:=abc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sHead.SNumber2:=htonl(StrToInt(FV_Date1_S));<BR>&nbsp;&nbsp;&nbsp;&nbsp;sHead.SNumber3:=htonl(StrToInt(FV_Date2_S));<BR>&nbsp;&nbsp;&nbsp;&nbsp;stream1.WriteBuffer(sHead,sizeof(sHead));<BR>&nbsp;&nbsp;&nbsp;&nbsp;stream1.WriteBuffer(sBind,sizeof(sBind));<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sHead.MessageLength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+inttostr(ntohl(sHead.MessageLength)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sHead.CommandId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+inttostr(ntohl(sHead.CommandId)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;bc:=ntohl(abc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sHead.SNumber1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      '+inttostr(bc));<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sHead.SNumber2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      '+inttostr(ntohl(sHead.SNumber2)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sHead.SNumber3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      '+inttostr(ntohl(sHead.SNumber3)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sBind.LonginType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      '+inttostr(sBind.LonginType));<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sBind.LonginName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      '+sBind.LonginName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;memo1.Lines.Add('sBind.LonginPass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

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