📄 sgip
字号:
src="SGIP的delphi源码.files/email.gif" border=0></A> <A
href="javascript:openWindow('%20')"><IMG alt=访问作者主页
src="SGIP的delphi源码.files/homepage.gif" border=0></A> <A
href="javascript:openWindow('viewip.asp?topic_id=1129')"><IMG alt=查看IP地址
src="SGIP的delphi源码.files/ip.gif" border=0></A> <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> <IMG alt="MSN号码: "
src="SGIP的delphi源码.files/msn.gif"
border=0></A> <A
href="http://skybird.9s9s.com/bbs/post.asp?method=editTopic&reply_id=1129&auth=576&forum_title=%A1%EE%D0%AD%D2%E9%C0%ED%BD%E2%A1%EE&topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&forum_id=7&topic_id=1129&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&topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&forum_id=7&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&method=reply&type=quotetopic&forum_title=%A1%EE%D0%AD%D2%E9%C0%ED%BD%E2%A1%EE&topic_id=1129&topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&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> Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,<BR> Dialogs, ScktComp, StdCtrls,
ExtCtrls, xy,
winsock;<BR>const<BR> FV_SNumber=3053112345;<BR> FV_LoginPass='hi';<BR> FV_LoginName='hi';<BR> FV_SPNumber='12345';<BR> T_Tel='13000000000';<BR> FV_corpID='12345';<BR> T_msg='我在天空写下你的名字,没有被风带走';<BR>type<BR> TForm1
= class(TForm)<BR> Memo1:
TMemo;<BR> Button1:
TButton;<BR> ClientSocket1:
TClientSocket;<BR> Button3:
TButton;<BR> Button4:
TButton;<BR> Button2:
TButton;<BR> Button5:
TButton;<BR> Button6:
TButton;<BR> Button7:
TButton;<BR> ServerSocket1:
TServerSocket;<BR> panel1:
TPanel;<BR> procedure Button2Click(Sender:
TObject);<BR> procedure Button1Click(Sender:
TObject);<BR> procedure Button6Click(Sender:
TObject);<BR> procedure Button5Click(Sender:
TObject);<BR> procedure Button3Click(Sender:
TObject);<BR> procedure Button4Click(Sender:
TObject);<BR> procedure ClientSocket1Read(Sender:
TObject; Socket: TCustomWinSocket);<BR> procedure
Button7Click(Sender: TObject);<BR> procedure
ServerSocket1ClientRead(Sender:
TObject;<BR> Socket:
TCustomWinSocket);<BR> private<BR> {
Private declarations }<BR> public<BR> {
Public declarations
}<BR> //客户端协议定义<BR> sHead: SGIPHead;
//消息头定义<BR> sBind: XBind; //连接请求验证<BR> sBind_Resp:
Bind_Resp; //响应连接请求验证<BR> sSubmit: XSubmit; //SP->SMG提交短信<BR> sSubmit_Resp:
Submit_Resp; //SMG响应SP提交的短信状态<BR> sDeliver:
XDeliver;
//SMG->SP提交短信<BR> sDeliver_Resp:
Deliver_Resp; //SP响应SMG提交的短信状态<BR> sReport: XReport; //SMG->SP先前的短信状态<BR> sReport_Resp:
Report_Resp; //响应命令执行状况<BR> //服务端协议定义<BR> cHead: SGIPHead;
//消息头定义<BR> cBind: XBind; //连接请求验证<BR> cBind_Resp:
Bind_Resp; //响应连接请求验证<BR> cSubmit: XSubmit; //SP->SMG提交短信<BR> cSubmit_Resp:
Submit_Resp; //SMG响应SP提交的短信状态<BR> cDeliver:
XDeliver;
//SMG->SP提交短信<BR> cDeliver_Resp:
Deliver_Resp; //SP响应SMG提交的短信状态<BR> cReport: XReport; //SMG->SP先前的短信状态<BR> cReport_Resp:
Report_Resp; //响应命令执行状况<BR> end;</P>
<P>var<BR> Form1: TForm1;</P>
<P>implementation</P>
<P>{$R *.dfm}</P>
<P>procedure TForm1.Button2Click(Sender:
TObject);<BR>begin<BR> ClientSocket1.Active:=false;<BR> if
ClientSocket1.Active
then<BR> memo1.Lines.Add('客户端关闭失败')<BR> else<BR> memo1.Lines.Add('客户端关闭成功');<BR>end;</P>
<P>procedure TForm1.Button1Click(Sender:
TObject);<BR>begin<BR> ClientSocket1.Active:=true;<BR> if
ClientSocket1.Active
then<BR> memo1.Lines.Add('客户端打开成功')<BR> else<BR> memo1.Lines.Add('客户端打开失败');<BR>end;</P>
<P>procedure TForm1.Button6Click(Sender:
TObject);<BR>begin<BR> ServerSocket1.Active:=true;<BR> if
ServerSocket1.Active
then<BR> memo1.Lines.Add('服务端打开成功')<BR> else<BR> memo1.Lines.Add('服务端打开失败');<BR>end;</P>
<P>procedure TForm1.Button5Click(Sender:
TObject);<BR>begin<BR> ServerSocket1.Active:=false;<BR> if
ServerSocket1.Active
then<BR> memo1.Lines.Add('服务端关闭失败')<BR> else<BR> 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 <A
href="javascript:openWindow('viewuser.asp?name=dulcet99')"><IMG alt=查看作者档案
src="SGIP的delphi源码.files/profile.gif" border=0></A> <A
href="mailto:dulcet99@163.com"><IMG alt=给作者发电子邮件
src="SGIP的delphi源码.files/email.gif" border=0></A> <A
href="javascript:openWindow('%20')"><IMG alt=访问作者主页
src="SGIP的delphi源码.files/homepage.gif" border=0></A> <A
href="javascript:openWindow('viewip.asp?reply_id=3673')"><IMG alt=查看IP地址
src="SGIP的delphi源码.files/ip.gif" border=0></A> <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> <IMG alt="MSN号码: "
src="SGIP的delphi源码.files/msn.gif"
border=0></A> <A
href="http://skybird.9s9s.com/bbs/post.asp?method=edit&reply_id=3673&auth=576&forum_title=&topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&forum_id=7&topic_id=1129&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&topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&forum_id=7&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&reply_id=3673&method=reply&type=quotereply&forum_title=%A1%EE%D0%AD%D2%E9%C0%ED%BD%E2%A1%EE&topic_id=1129&topic_title=SGIP%B5%C4delphi%D4%B4%C2%EB&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> FV_Date1_S,FV_Date2_S:string;<BR> str_i,SendSize:integer;<BR> stream1:TWinSocketStream;<BR> abc,bc:longword;<BR>begin<BR> stream1:=TWinSocketStream.Create(ClientSocket1.Socket,30000);<BR> memo1.Lines.Add('-------------------向服务端发送BIND请求--------------------');<BR> if
not ClientSocket1.Active
then<BR> begin<BR> memo1.Lines.Add('客户端没有打开');<BR> exit;<BR> end;<BR> DateTimeToString(FV_Date1_S,'mmddhhnnss',now);<BR> DateTimeToString(FV_Date2_S,'zzz',now);<BR> FillChar(sBind,sizeof(sBind),0);<BR> FillChar(sHead,sizeof(sHead),0);<BR> str_i:=sizeof(sHead)+sizeof(sBind);<BR> sBind.LonginType:=1;<BR> strpcopy(sBind.LonginPass,FV_LoginPass);<BR> strpcopy(sBind.LonginName,FV_LoginName);<BR> abc:=htonl(FV_SNumber);<BR> sHead.MessageLength:=htonl(str_i);<BR> sHead.CommandId:=htonl(SGIP_Bind);<BR> sHead.SNumber1:=abc;<BR> sHead.SNumber2:=htonl(StrToInt(FV_Date1_S));<BR> sHead.SNumber3:=htonl(StrToInt(FV_Date2_S));<BR> stream1.WriteBuffer(sHead,sizeof(sHead));<BR> stream1.WriteBuffer(sBind,sizeof(sBind));<BR> memo1.Lines.Add('sHead.MessageLength '+inttostr(ntohl(sHead.MessageLength)));<BR> memo1.Lines.Add('sHead.CommandId '+inttostr(ntohl(sHead.CommandId)));<BR> bc:=ntohl(abc);<BR> memo1.Lines.Add('sHead.SNumber1
'+inttostr(bc));<BR> memo1.Lines.Add('sHead.SNumber2
'+inttostr(ntohl(sHead.SNumber2)));<BR> memo1.Lines.Add('sHead.SNumber3
'+inttostr(ntohl(sHead.SNumber3)));<BR> memo1.Lines.Add('sBind.LonginType
'+inttostr(sBind.LonginType));<BR> memo1.Lines.Add('sBind.LonginName
'+sBind.LonginName);<BR> memo1.Lines.Add('sBind.LonginPass
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -