欢迎来到天天文库
浏览记录
ID:10009739
大小:291.00 KB
页数:36页
时间:2018-05-20
《利用delphi编写socket通信程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Indy10InstallAllpackagesarefollowedbyX0(WhereXisyourDelphiverison).1.DownloadsourcefromtheDevelopmentSnapshot.Delphi/BCBInstallation1.Openandcompileinthefollowingorder:2.1.IndySystem(inLibSystem)2.IndyCore(inLibCore)3.IndyProtocols(inLibProtocols)4.IndySuperCore(inLib
2、SuperCore)IfyouarenotusingSuperCore,thenyoudonotneedtocompilethispackage.3.Nowopenandclickinstallinthefollowingorder4.5.1.dclIndyCore(inLibCore)2.dclIndyProtocols(inLibProtocols)3.dclSuperCore(inLibSuperCore)OnlyinstallthisifyouhavecompiledSuperCore.利用Delphi编写Socket通信程
3、序2004-08-24人气:5925出处:csdn作者:dudunono[原作]一、Delphi与Socket 计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议。TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的 就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的。TCP和UDP协议都非常复杂,尤其是TCP协议,为了保证网络传输的 正确性和有效性,必须进行一系列复杂的纠错和排序等
4、处理。 Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范,最初是由美国加州Berkley大学提出,它定义两台计算机间进行通信的规范(也是一种编程规范),如果说两台计算 机是利用一个“通道“进行通信,那么这个“通道“的两端就是两个套接字。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP协议软件和实现了套接字规范的计 算机之间的通信成为可能。 微软的WindowsSocket规范(简称winsock)对Berkley的套接字规范进行了扩展,利用标准的Socket的方法,可以同任何平台上的Soc
5、ket进行通信;利用其扩展,可以更有效地实现在 Windows平台上计算机间的通信。在Delphi中,其底层的Socket也应该是Windows的Socket。Socket减轻了编写计算机间通信软件的难度,但总的说来还是相当复杂的(这一点在后面具体会讲 到);Inprise在Delphi中对WindowsSocket进行了有效的封装,使得用户可以很方便地编写网络通信程序。下面我们实例解读在Delphi中如何利用Socket编写通信程序。二、利用Delphi编写Socket通信程序。 下面是一个简单的Socket通信程序,其中客户机和服务
6、机是同一个程序,当客户机(服务器)在一个memo1中输入一段文字然后敲入回车,该段文字就可以显示在服务器(客户机)的memo2 中,反之亦成立。具体步骤如下: 1、新建一个form,任意命名,不妨设之为chatForm;放上一个MainMenu(在Standard栏中),建立ListenItem、ConnectItem、Disconnect和Exit菜单项;在从Internet栏中选择 TServerSocket、TClientSocket添加到chatForm中,其中把TClientSocket的名字设为ClientSocket,po
7、rt设为1025,默认的active为false;把TServerSocket的名字设为ServerSocket, port设为1025,默认的active为false,其他的不变;再放入两个memo,一个命名为memo1,另外一个命名为memo2,其中把memo2的color设置为灰色,因为主要用来显示对方的输入。下面我们 一边编写代码一边解释原因。 2、双击ListemItem。写入如下代码:procedureTChatForm.ListenItemClick(Sender:TObject);beginListenItem.Chec
8、ked:=notListenItem.Checked;ifListenItem.CheckedthenbeginClientSocket.Active:=False;ServerSocket.
此文档下载收益归作者所有