利用Delphi编写Socket通信程序
日期:2007年8月16日 作者: 查看:[大字体 中字体 小字体]-
这两段代码分别是服务器方和客户机方在收到对方的消息时,由Delphi触发的,作用是在memo2中显示收到的消息。其中,ClientSocketRead中的Socket实际上就是Socket本身,而在ServerSocketClientRead中的Socket实际上是ServerSocket.Socket.Connection[]中的某个Socket。不过在Delphi中,对服务器方的Socket进行了有效的封装。
procedure TChatForm.ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo2.Lines.Clear;
end;
procedure TChatForm.ClientSocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ListenItemClick(nil);
end;
这两段比较简单。其中ServerSocketClientConnect在ServerSocket收到一个新的连接时触发。而ClientSocketDisconnect在ClientSocket发出Disconncet时触发。procedure TChatForm.Exit1Click(Sender: TObject);
begin
ServerSocket.Close;
ClientSocket.Close;
Close;
end;
procedure TChatForm.Disconnect1Click(Sender: TObject);
begin
ClientSocket.Active := False;
ServerSocket.Active := True;
end;
第一段为关闭应用程序。在标准Socket中,每个Socket在关闭时,必须调用closesocket()方法,否则系统不会释放资源。而在ServerSockt.Close和ClientSocket.Close中,系统内部肯定调用了closesocket()方法。
三、标准Socket与Delphi中的Socket。
标准的Socket的应用程序框架如下:
Server方: Socket()[ 新建一个Socket]--Bind()[ 同服务器地址邦定 ]--Listen() --Accept()--block wait--read()[接受消息,在windows平台中,方法为send(TCP),或者是sendto(UDP)]--处理服务请求--Write()[发送消息,在windows平台中,方法为send(TCP), 或者为sendto(UDP)。
Client方相对简单:Socket()--Connect()[通过一定的port连接特定的服务器,这是与服务器建立连接]--Write()--Read()。
Socket可以是基于TCP的,也可以是基于UDP,同时Socket甚至建立在其他的协议,比如IPX/SPX,DECNet等。在新建一个Socket时,可以指定新建何类Socket。Bind()用来同服务器的地址邦定,如果一个主机只有一个IP地址,实际上邦定的作用就相对多余了。Listen()开始监听网络,Accept()用于接受连接,其返回值是保持同客户机联系的Socket。
在Delphi中,对于Windows中的Socket进行了有效的封装。在Delphi中,按其继承关系,可以分层两类:一、TComponent--TAbstractSocket--TCustomSocket--TCustomServerSocket--TServerSocket二、直接从TObject继承过来:
TComponent--TAbstractSocket--TCustomSocket--TClientSocket - 上一页 [1] [2] [3] [4] 下一页
-
- 利用Delphi编写Socket通信程序 相关文章:
- ·利用插件来校验XHTML是否符合Web标准
- ·Web2.0在中国步入歧途 缺赢利模式VC有错
- ·利用UNIX的TFTP和RCP配置路由器
- ·黑客如何利用文件包含漏洞进行网站入侵
- ·利用iTextSharp生成Pdf一个小例子
- ·ASP.Net利用CSS实现多界面的方法
- ·利用XMLHTTP无刷新添加数据
- ·异域风情 奥地利美丽风景集
- ·网站优化:怎么利用Tags进行SEO
- ·利用expression实现界面对象的批量控制
- 利用Delphi编写Socket通信程序 相关软件
- ·魂之利刃4公布宣传片
- ·NDS《胜利11人DS 中文汉化版》模拟器
- ·《超级马利奥64 DS》模拟器下载
- ·《毛利元就三箭之誓》试玩
- ·NDS《哈利波特和凤凰令》模拟器
- ·亚历山大·别利亚耶夫作品集V1.0
- ·《哈利波特与凤凰社》PC版试玩
- ·秘书长——一场正义与腐败的权利博弈
- ·法拉利赛车2 汉化版
- ·《命令与征服3泰伯利亚战争》全版本修改器全集
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:全局热键
精品推荐
热点TOP10
- ·Delphi下的ADO使用方法!
- ·在Delphi中实现数据分析模块的动态报表
- ·在Delphi中控制扫描仪
- ·用拼音首字符来实现检索功能
- ·让Delphi的DBGrid支持鼠标轮
- ·自 动 隐 藏 的 声 象 按 钮
- ·OpenGL简介
- ·用Delphi制作动态有声标签
- ·从 实 例 看 Delphi 4 中 的 动 态
- ·Delphi中为DBGrid控件添加色彩
- ·常用的BCB & Delphi 函数
- ·产生不重复随机数的简便算法
- ·陈经韬2002原创资料
- ·Delphi2005试用版安装指南
- ·Delphi中ListBox控件的六种特效
- ·第三方控件使用方法
- ·关于SMTP和POP3使用及关于客户-服务端的自动连线问题
- ·关于MP3中的ID3V2格式探讨及我写的ID3V2读取源码
- ·监视打印机部分线程内容
- ·获取其他进程中ListView的文本
