-处理服务请求-- 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 TComponent--TAbstractSocket--TCustomSocket--TClientSocket 二、直接从 TObject 继承过来: TObject--TCustomWinSocket--TServerWinSocket TObject--TCustomWinSocket--TClientWinSocket TObject--TCustomWinSocket--TServerClientWinSocket 可以看出第一类建立
在 TCustomSocket 基础上,第二类建立在 TCustomWinSocket 的基础上。第一类建立在 TComponet 的基础上,第二类直接 构建在 TObject 基础上。因此如果用户非常熟悉 Socket 并且想要编写控制台程 序时,可以使用 TCustomWinScoket 类。 同 uses 中可以看出,它们都在 ScktComp.pas 中实现,而在 schtComp.pas 中,则包含了 winsock.pas 文件,如果继续深入 winsock 文件,在其中可以发现 所有的 Windows Socket 的基本方法。 实际上,如果你了解了标准 Socket 的应用程序框架,对于使用 Delphi 编写 Socket 应用程序也就得心应手了;这不是说你必须了解复杂的 Socket 中的标准 函数,也没有必要,因为 Delphi 已经为你做了很好的封装了,这也正是 Delphi 的强势所在,你只要了解那么一点点的基本框架。 这是我对 Delphi 中的 Socket 应用的理解,不足之处希望大家指正。同时也 乐于为大家解答 Delphi 中有关 Socket 的
问题。
利用 Delphi 编写 Socket 通信程序
2004-11-08 09:55 作者:AustinLei 出处:天极论坛责任编辑:方舟 程序
源代码: 服务器端源码(uServerMain.pas):
unit uServerMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, ToolWin, ComCtrls, ExtCtrls, StdCtrls, Buttons; const CMax=10; //客户端最大连接数 type client_record=record CHandle: integer; //客户端套接字句柄 CSocket:TCustomWinSocket; //客户端套接字 CName:string; //客户端计算机名称 CAddress:string; //客户端计算机 IP 地址 CUsed: boolean; //客户端联机标志 end; type TfrmServerMain = class(TForm) ServerSocket: TServerSocket; ControlBar1: TControlBar; ToolBar1: TToolBar; tbConnect: TToolButton; tbClose: TToolButton; tbDisconnected: TToolButton; Edit1: TEdit; Memo1: TMemo; StatusBar: TStatusBar; procedure tbConnectClick(Sender: TObject); procedure tbDisconnectedClick(Sender: TObject); proc