没有合适的资源?快使用搜索试试~ 我知道了~
利用Delphi编写Socket通信程序.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 21 浏览量
2022-06-26
09:26:07
上传
评论
收藏 293KB DOC 举报
温馨提示
试读
37页
利用Delphi编写Socket通信程序.doc
资源推荐
资源详情
资源评论
Indy10Install
!
Delphi / BCB Installation
" #
$
%! &'!
$ %(&'(
) %* &'*
+ %!(&'!(
% !(,
) -
+
.
%(&'(
$ %* &'*
) !(&'!(
" !(
利用 Delphi 编写 Socket 通信程序
2004-08-24 人气:./$.出处:作者#0原作1
一、 与 !
计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的 2(*3%* 和 4* 协议。2(*
是面向连接的,通信双方保持一条通路,好比目前的电话线,使用 登陆 55!,用的
就是 2(* 协议;4* 是无连接的,通信双方都不保持对方的状态,浏览器访问 % 时使用的 622*
协议就是基于 4* 协议的。2(* 和 4* 协议都非常复杂,尤其是 2(* 协议,为了保证网络传输的
正确性和有效性,必须进行一系列复杂的纠错和排序等处理。
! 是建立在传输层协议主要是 2(* 和 4*上的一种套接字规范,最初是由美国加州 5
大学提出,它定义两台计算机间进行通信的规范(也是一种编程规范),如果说两台计算
机是利用一个“通道“进行通信,那么这个“通道“的两端就是两个套接字。套接字屏蔽了底层通信软件和具
体操作系统的差异,使得任何两台安装了 2(* 协议软件和实现了套接字规范的计
算机之间的通信成为可能。
微软的 ! 规范简称 对 5 的套接字规范进行了扩展,利用标准的
! 的方法,可以同任何平台上的 ! 进行通信;利用其扩展,可以更有效地实现在
平 台 上 计 算 机 间 的 通 信 。 在 中 , 其 底 层 的 ! 也 应 该 是 的
! 。! 减轻了编写计算机间通信软件的难度,但总的说来还是相当复杂的(这一点在后面具体
会讲
到);% 在 中对 ! 进行了有效的封装,使得用户可以很方便地编写网络通
信程序。下面我们实例解读在 中如何利用 ! 编写通信程序。
二、利用 编写 ! 通信程序。
下面是一个简单的 ! 通信程序,其中客户机和服务机是同一个程序,当客户机(服务器)在一
个 中输入一段文字然后敲入回车,该段文字就可以显示在服务器客户机的 $
中,反之亦成立。具体步骤如下:
、新建一个 ,任意命名,不妨设之为 7;放上一个 88在 ! 栏中,
建立 & % 、( % 、 和 9: 菜单项;在从 % 栏中选择
2!! 、 2( ! 添 加 到 7 中 , 其 中 把 2( ! 的 名 字 设 为
( ! , 设 为 $. , 默 认 的 为 ; 把 2!! 的 名 字 设 为
!! ,
设为 $.,默认的 为 ,其他的不变;再放入两个 ,一个命名为 ,另外
一个命名为 $,其中把 $ 的 设置为灰色,因为主要用来显示对方的输入。下面我们
一边编写代码一边解释原因。
2、双击 & % 。写入如下代码:
2( 7& % (!#2"; <
& % (#= & % (<
& % (
( ! #=7<
!! #=2<
!!
!! #=7<
<
<
该程序段的说明如下:当用户选择 & % 时,该 & % 取反,如果选中的话,说明处于
& 状态,读者要了解的是: 是 ! 作为 ! 时一个专有的方法,如果处于
,则 !! 设置为活动状态;否则,取消 ,则关闭 !! 。实际上,只有用
户一开始选择该菜单项,表明该程序用作 !。反之,如果用户选择 ( % ,则
必然作为 ( 使用。
3、双击 ( % ,敲入以下代码。
2( 7( % (!#2"; <
( ! ( ! #=7<
% >?( ?,?-#?,!
& !@
( !
6 #=!<
#=2<
& % (#=7<
<
<
这段程序的主要功能就是当用户选择 ( % 菜单项时,设置应用程序为客户机,弹出
框,让用户输入服务器的地址。这也就是我们不一开始固定 ( ! 的 的原因,
这样用户可以动态地连接不同的服务器。读者需要了解的是主机地址只是 ! 作为客户机时具有的一
个属性,! 作为服务器时“一般“不用地址,因为它同本机绑定。
+、在 的 方法中写入如下代码:
2( 78A!#2"; <A#<
! #2! ! <
A=BACD
%!
!! ! ( 01!2: 8&08&( E1
( ! ! !2: 8&08&( E1<
<
该段代码的作用很明显,就是开始发消息了。其中如果是 ! 的话,它只向第一个客户机发消息,
由于一个服务器可以连接多个客户机,而同客户机的每一个连接都由一个 ! 来维
持,因此 !! ! ( 数组中存储的就是同 ( 维持连接的 ! 。在标
准 ! 中,服务器方的 ! 通过 方法的返回值获取维持同客户机连接的
! ,而发送、接受消息的方法分别为 和 , 对此进行了封装。
5、其余代码的简要介绍。
2( 7!! !#2"; <
! #2( ! <
%!#=2<
<
!! 的 方法,当客户机第一次连接时完成,通过其参数可以认为,它是在标准的
方法后执行的,因为有 2( ! 这个参数类型,它应该是标准 ! 方
! 的返回值。
2( 7( ! D!#2"; <
! #2( ! <
8$&! D2: <
<
2( 7!! ( D!#2"; <
! #2( ! <
8$&! D2: <
<
这两段代码分别是服务器方和客户机方在收到对方的消息时,由 触发的,作用是在 $
中显示收到的消息。其中,( ! D 中的 ! 实际上就是 ! 本身,而在
!! ( D 中 的 ! 实 际 上 是 !! ! ( 01 中 的 某 个
! 。不过在 中,对服务器方的 ! 进行了有效的封装。
2( 7!! ( ( !#2"; <
! #2( ! <
8$&(<
<
2( 7( ! !#2"; <
! #2( ! <
& % (<
<
这两段比较简单。其中 !! ( ( 在 !! 收到一个新的连接时触发。
而 ( ! 在 ( ! 发出 时触发。
2( 79: (!#2"; <
!! (<
( ! (<
(<
<
2( 7 (!#2"; <
( ! #=7<
!! #=2<
<
第一段为关闭应用程序。在标准 ! 中,每个 ! 在关闭时,必须调用 方法,
否则系统不会释放资源。而在 !! ( 和 ( ! ( 中,系统内部肯
定调用了 ()方法。
三、标准 ! 与 中的 ! 。
标准的 ! 的应用程序框架如下:
! 方: ! 0新建一个 ! 1--50同服务器地址邦定 1--& --
-- --0接受消息,在 平台中,方法为 2(*,或者是
4*1--处理服务请求-- 0发送消息,在 平台中,方法为 2(*,或者
为 4*。
( 方相对简单:! --( 0通过一定的 连接特定的服务器,这是与服务器建立连
接1-- --D。
! 可以是基于 2(* 的,也可以是基于 4*,同时 ! 甚至建立在其他的协议,比如 %*3!*
,9(- 等。在新建一个 ! 时,可以指定新建何类 ! 。5用来同服务器的地址
邦定,如果一个主机只有一个 %* 地址,实际上邦定的作用就相对多余了。 & 开始监听网络,
用于接受连接,其返回值是保持同客户机联系的 ! 。
在 中,对于 中的 ! 进行了有效的封装。在 中,按其继承关系,可以
分层两类:
剩余36页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3655
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功