利用Delphi编写Socket通信程序

2016-01-29 14:27 20 1 收藏

利用Delphi编写Socket通信程序,利用Delphi编写Socket通信程序

【 tulaoshi.com - Delphi 】

  ClientSocket组件为客户端组件。它是通信的请求方,也就是说,它是主动地与服务器端建立连接。

  ServerSocket组件为服务器端组件。它是通信的响应方,也就是说,它的动作是监听以及被动接受客户端的连接请求,并对请求进行回复。

  ServerSocket组件可以同时接受一个或多个ClientSocket组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的通信。因此,一个服务器端可以为多个客户端服务。

  设计思路

  本例包括一个服务器端程序和一个客户端程序。客户端程序可以放到多个计算机上运行,同时与服务器端进行连接通信。

  本例的重点,一是演示客户端与服务器端如何通信;二是当有多个客户端同时连接到服务器端时,服务器端如何识别每个客户端,并对请求给出相应的回复。为了保证一个客户端断开连接时不影响其它客户端与服务器端的通信,同时保证服务器端能够正确回复客户端的请求,在本例中声明了一个记录类型:

type
 client_record=record
 CHandle: integer; //客户端套接字句柄
 CSocket:TCustomWinSocket; //客户端套接字
 CName:string; //客户端计算机名称
 CAddress:string; //客户端计算机IP地址
 CUsed: boolean; //客户端联机标志
end;
  利用这个记录类型数据保存客户端的信息,同时保存当前客户端的连接状态。其中,CHandle保存客户端套接字句柄,以便准确定位每个与服务器端保持连接的客户端;Csocket保存客户端套接字,通过它可以对客户端进行回复。Cused记录当前客户端是否与服务器端保持连接。

  下面对组件ServerSocket和ClientSocket的属性设置简单说明。

  ServerSocket的属性:

  · Port,是通信的端口,必须设置。在本例中设置为1025;

  · ServerTypt,服务器端读写信息类型,设置为stNonBlocking表示异步读写信息,本例中采用这种方式。
 
  · ThreadCacheSize,客户端的最大连接数,就是服务器端最多允许多少客户端同时连接。本例采用默认值10。

  其它属性采用默认设置即可。

  ClientSocket的属性:

  · Port,是通信的端口,必须与服务器端的设置相同。在本例中设置为1025;

  · ClientType,客户端读写信息类型,应该与服务器端的设置相同,为stNonBlocking表示异步读写信息。

  · Host,客户端要连接的服务器的IP地址。必须设置,当然也可以在代码中动态设置。

  其它属性采用默认设置即可。


来源:http://www.tulaoshi.com/n/20160129/1493341.html

延伸阅读
标签: Delphi
  一、Win2000服务简介 服务程序(Service Application)是一种运行于WinNT的后台程序,每个服务程序(Service Application)中可能包含若干个服务(Service),每个服务就是其中的一个线程(该服务也可以创建多个子线程)。采用服务,应用程序可以获得特殊的权限,而且不会被用户通过Win2000的任务管理器直接结束程序,所以服务...
一、 原理 目前进行数据加密的方法很多,对数据的保护起到一定的作用。但如果采用固定的密钥或是密钥随数据一起传送,则均不能达到令人满意的保密效果。在实践过程中,我摸索出了一套请求-应答模式的随机密钥方法,对密码和数据的保密效果都令人十分满意。 当客户端程序启动并企图与服务器程序建立连接时,客户程序从服务器端取...
标签: Delphi
第一步:根据需要,用FrontPage或者Dreamweaver做一个界面,界面加上图片,还可加上漂亮的动态Flash。Web界面与程序事件联系在一起的地方就是“超链接”,我们以一个简单的播放器程序为例。 比如:要做一个播放器,有“播放”按钮和“停止”按钮,分别设置“播放”按钮的链接为“Play_”;“停止”按钮的超链接为“Stop_”。并保存这个网...
标签: Web开发
我把程序分为两种,有趣的和无趣的,最近做了几个有趣的项目,其中一个,应当就算是摄像头拍照程序了。用于现场拍照,生成照片,主要用到Java Media Framework(JMF)。 首先到SUN下载最新的JMF,然后安装。http://java.sun.com/products/java-media/jmf/index.jsp 然后,说一下需求 1. 用摄像头拍照 2. 在文本框输入文件...
1-在C++ Builder 6.0下基于api函数编写串口通信程序简介: 在dos/win95/win98的年代,操作系统对串口是不保护的,也就是说将串口的的资源完全开放给用户,用户可以用直接操作硬件的函数(比如说TC2.0下的inport()和outport()函数)跟串口直接打交道,这时候用户使用直接操作串口的函数怎样"折磨"串口都是没有问题的,操作系统...

经验教程

214

收藏

96
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部