W
wodelove
Unregistered / Unconfirmed
GUEST, unregistred user!
unit Scktcomp 实现了对windows网络编程中socket的封装
主要关系如下
TComponent
|
TAbstractSocket
|
|----TCustomSocket--|-- TClientSocket
|
|-- TCustomServerSocket---TServerSocket
TObject
|
TCustomWinSocket
|
|----|---TClientWinSocket
|---TServerClientWinSocket
|---TServerWinSocket
TCustomSocket 及其继承类采用聚合而不是继承的方式使用 TCustomWinSocket
这样的设计有利于实现和抽象上的分离 ,适合跨平台扩展的需要,比如需要在linux平台使用,只需要
有一个 TCustomLinuxSocket及其相应继承即可
WIN32 API 函数封装情况列表
window socket 编程函数如下
WSAStartup 封装在全局函数 startup 中
WSACleanup cleanup
服务器端调用函数
socket
bind
listen
accept
send
recev
客户端调用函数
socket
connect
send
recev
-----------------------------------
socket
bind TCustomWinSocket.DoListen(QueueSize: Integer);
listen TCustomWinSocket.DoListen(QueueSize: Integer);
connect TCustomWinSocket.DoOpen;
send TCustomWinSocket.SendStreamPiece: Boolean;
TCustomWinSocket.SendBuf(var Buf; Count: Integer): Integer;
recev TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
accept TServerWinSocket.Accept(Socket: TSocket);
从上面可以看出,对于server和client端都会使用的函数,被封装在TCustomWinSocket
只有server端使用的函数 被封装在 TCustomWinSocket 继承类TServerWinSocket
主要关系如下
TComponent
|
TAbstractSocket
|
|----TCustomSocket--|-- TClientSocket
|
|-- TCustomServerSocket---TServerSocket
TObject
|
TCustomWinSocket
|
|----|---TClientWinSocket
|---TServerClientWinSocket
|---TServerWinSocket
TCustomSocket 及其继承类采用聚合而不是继承的方式使用 TCustomWinSocket
这样的设计有利于实现和抽象上的分离 ,适合跨平台扩展的需要,比如需要在linux平台使用,只需要
有一个 TCustomLinuxSocket及其相应继承即可
WIN32 API 函数封装情况列表
window socket 编程函数如下
WSAStartup 封装在全局函数 startup 中
WSACleanup cleanup
服务器端调用函数
socket
bind
listen
accept
send
recev
客户端调用函数
socket
connect
send
recev
-----------------------------------
socket
bind TCustomWinSocket.DoListen(QueueSize: Integer);
listen TCustomWinSocket.DoListen(QueueSize: Integer);
connect TCustomWinSocket.DoOpen;
send TCustomWinSocket.SendStreamPiece: Boolean;
TCustomWinSocket.SendBuf(var Buf; Count: Integer): Integer;
recev TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
accept TServerWinSocket.Accept(Socket: TSocket);
从上面可以看出,对于server和client端都会使用的函数,被封装在TCustomWinSocket
只有server端使用的函数 被封装在 TCustomWinSocket 继承类TServerWinSocket