分享

Delphi Socket 经验总结

 区区收藏 2020-07-18

 在Delphi中,对于Windows中的Socket进行了有效的封装。在Delphi中,按其继承关系,可以分层两类:
一、TComponent--TAbstractSocket--TCustomSocket--TCustomServerSocket--TServerSocket
    TComponent--TAbstractSocket--TCustomSocket--TClientSocket

Delphi <wbr>Socket <wbr>经验总结
二、直接从TObject继承过来:
    TObject--TCustomWinSocket--TServerWinSocket
    TObject--TCustomWinSocket--TClientWinSocket
    TObject--TCustomWinSocket--TServerClientWinSocket

Delphi <wbr>Socket <wbr>经验总结

  编程思路:通过Socket类TServerSocket&TClientSocket编程,其实都是通过属性Socket类的属性-->
                     socket : TCustomWinSocket来接收发送数据。简单地说:由TCustomSocket类间接操
                     作TCustomWinSocket, 由TCustomWinSocket类对象完成收发任务。

Delphi是一种功能强大的面向对象的编程语言,在网络方面,它将windows API封装成许多组件,大大简化了编程的复杂程度。对于一些比较简单的程序,利用Delphi中的一些网络组件,可以轻松地解决问题。

下面将说明TClientSocket组件、TserverSocket组件。

Socket组件的安装方法5

一.TClientSocket组件

TClientSocket组件主要作为客户端的套接字使用。它封装了客户端的套接字,在与服务器建立连接后,就负责管理这个链接,在结束连接之后关闭套接字。下面将简单地介绍TClientSocket组件的主要属性、方法和事件。

1.属性

●Active:设置ClientSocket是否打开。

●ClientType:设置ClientSocket使用阻塞式还是非阻塞式。

●Address:想要连接的服务器的ip地址。

●Host:想要连接的服务器的主机名。

●Port:想要连接服务器的端口号。

●Service:想要获得的服务。

●Socket:TClientWinSocket连接所使用的Socket,它负责数据的传输。

上面是TclientSocket组件的主要属性。在实际使用中,主要是设TclientSocket组件的Address属性(或Host属性)和Port属性。只要知道服务器的ip地址、端口号,将组件的Active属性设置为True,就可以建立和服务器Socket的连接了。属性ClientType是对应套接字在试图获得数据没有到来时,就会占用进程,而不去处理其他的事,直到数据到来为止。非阻塞则正好相反,在套接字等待数据而数据还未到来时,套接字不会等待,而是直接返回,等待数据到来时才去接收数据,在一般情况下,用非阻塞比较多。

2.方法

●Create:创建一个TClientSocket对象。

●Destroy:释放一个TClientSocket对象。

●Open:初始化Socket连接,等同于将Active属性设置为True。

●Close:关闭Socket连接,等同于将Active属性设置为False。

3.事件

●OnConnect:当客户与服务器建立连接后该事件被触发。

●OnConnecting:在找到服务器时,当尚未建立连接时,该事件被触发。

●OnDisConnect:在改变连接前,该事件被触发。

●OnError:在创建、使用或者关闭套接字出现错误时,该事件被触发。

●OnLookup:在试图寻找服务器端套接字时,该事件被触发。

●OnRead:在客户端有数据到来并可以读取时,该事件被触发。

●OnWrite:在客户端有数据需要发送时,该事件被触发。

二.TServerSocket组件

TserverSocket组件主要作为服务器端的套接字管理器使用。它封装了服务器端的套接字。在打开套接字后,服务器端就处于监听状态,在接收到其他计算机的连接请求之后,与客户端建立连接,创建一个新的套接字,用于和客户端互相传数据,此时TServerSocket组件则继续监听客户端的连接。

下面将简单地介绍一下TServerSocket组件的主要属性、方法和事件。

1.属性

●Active:设定TserverSocket是否处于打开,并处于监听状态。

●SeverType:设定TServerSocket按阻塞式还是非阻塞式模式工作方式。

●Port:服务器端口。

●Service:服务器端提供的服务。

●Socket:连接所使用的Socket。

●TreadCacheSize:允许客户连接的最大数值。

2.方法

●Create:创建一个TServerSocket 对象。

●Destroy:释放一个TServerSocket对象。

●Open:打开 TServerSocket 并开始监听,等同于将Active属性设为True。

●Close:关闭 TServerSocket ,断开与客户端连接,等同于将Active属性设置为False。

3.事件

●OnAccept:当有客户端请求连接时,该事件被触发。

●OnClientConnect:当有客户端的连接请求被接受并且客户端的连接建立时,该事件被触发。

●OnClientDisConnect:当有客户端的套接字被关闭时,该事件被触发。

●OnClientError:当与一个独立的客户端建立、使用、断开出现错误时,该事件被触发。

●OnClientRead:当服务器应该从某一个与客户端连接的套接字读取数据时,该事件被触发。

●OnClientWrite:当服务器应该给某一个与客户端连接的套接字发送数据时,该事件被触发。

●OnGetSocket:当服务器端应该创建一个TServerSocket 对象已用于和一个客户端的连接时,该事件被触发。

●OnGetThread:当服务器应该创建一个新线程以用于和一个客户端的连接时,该事件被触发。

●OnListen:当服务器进入监听状态时,该事件被触发。

●OnThreadEnd:当与一个客户端的套接字连接终结,并且相对应的通信线程也将结束,该事件被触发。

●OnThreadStart:当与一个客户端的套接字连接建立完毕,并且相对应的通信线程也将开始,该事件被触发

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多