首页 / 软件开发 / C++ / TServerSocket和TClientSocket的使用
TServerSocket和TClientSocket的使用2009-12-16在网络编程中,WinSocket API编程是最基本,也是最麻烦的地方(说句不怕影响形象的话,我对此就是一知半解)。但是,如果你是使用C++Builder作为编程平台,你就偷着乐吧,有了BCB,菜鸟变高手!:-)在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:80ServerType TServerType 设置与客户连接的方式,取值为两个枚举常量stNonBlocking和stThreadBlocking,stNonBlocking表示用非阻塞方式连接每一个客户每个连接都在一个单独的线程中处理。并用OnClientRead()和OnClientWrite()通知服务器端的Socker进行读写。stThreadBlocking表示以阻塞方式连接客户,即以主动查询的方式可客户连接。Active bool 激活服务,相当于调用Open()方法。OnAccept事件当有客户请求连接时触发OnClientRead事件通知服务器去读取有关信息。OnClientWrite与此类似。2)TClientSocket名称 类型 说明Socket TClientWinSocket 同TServerSocketActive bool 同TServerSocketAddress AnsiString 服务器的IP地址,如202.98.35.14ClientType TClientType 与服务器连接方式,取值为两个枚举常量ctNonBlocking,tBlocking。ctNonBlocking表示非阻塞方式,ctBlocking表示阻塞方式,详见上例。Host AnsiString 要连接的主机名,如www.cpcw.comPort int 同TServerSocketService AnsiString 同TServerSocket