BCB 高手进阶
(八)TServerSocket和TClientSocket应用技巧
在网络编程中,WinSocket API编程是最基本,也是最繁锁的部分。但是,如果你是采用C++Builder 5 作为编程平台,事情就变得简单的多了!通过我的介绍,相信你一定能快速掌握设计基于C/S体系的方法与技巧。
在BCB中,TServerSocket和TClientSocket涵盖了基本的WinSocket编程,其中TServerSocket作为服务器方使用,TClientSocket作为客户端使用,这两个组件本身并不提供Socket连接,但是他们都有一个Socket属性,这个属性才提供了Socket连接。下面就先向大家介绍一下这两个组件常用的方法属性,然后在通过一个例子来看看这两个组件的使用。
1)TServerSocket
名称 类型 说明
Socket TServerWinSocket 最重要的属性,提供Socket连接,事实上发送/接收数据都要靠这个属性.
Port int 要监听的端口,如果在Service属性中指定了服务类型,此属性将被忽略.
Service AnsiString 提供的服务,如HTTP、FTP等,如果在这里指定了服务类型,
Port将被忽略,因为各种服务都有特定的端口,如FTP:21、HTTP:80
ServerType TServerType 设置与客户连接的方式,取值为两个枚举常量stNonBlocking和
stThreadBlocking,stNonBlocking表示用非阻塞方式连接每一个客户
每个连接都在一个单独的线程中处理。并用OnClientRead()和
OnClientWrite()通知服务器端的Socker进行读写。stThreadBlocking
表示以阻塞方式连接客户,即以主动查询的方式可客户连接。
Active bool 激活服务,相当于调用Open()方法。
OnAccept事件当有客户请求连接时触发
OnClientRead事件通知服务器去读取有关信息。OnClientWrite与此类似。
2)TClientSocket
名称 类型 说明
Socket TClientWinSocket 同TServerSocket
Active bool 同TServerSocket
Address AnsiString 服务器的IP地址,如202.98.35.14
ClientType TClientType 与服务器连接方式,取值为两个枚举常量ctNonBlockin