首页 理论教育 VisualC++高级编程:创建连接

VisualC++高级编程:创建连接

时间:2023-11-16 理论教育 版权反馈
【摘要】:在使用Socket对象之前,必须调用它的Create方法创建Socket供使用。流式Socket面向连接,以便保证数据的交付。数据报Socket是无连接的,需要编写代码确信数据报已被接收并在接收端数据是按发送顺序存放的。说明2:如果建立的服务器准备运行在安装了多块网卡的计算机上,应该指定Socket准备监听的网络地址,告诉Socket它只监听特定网卡的连接请求。

VisualC++高级编程:创建连接

为使应用程序可以使用Socket,第一步要做的是声明CAsyncSocket、CSocket或者这两个类的派生类的一个对象变量,作为主应用程序类的一个类成员。

在使用Socket对象之前,必须调用它的Create方法创建Socket供使用。调用Create方法的方式与准备如何使用Socket相关。如果准备用Socket连接另一个应用程序,作为客户程序,不必给Create方法传送任何参数:

然而,如果Socket准备监听另一个应用程序的连接请求,作为服务器等待呼叫,至少要传送一个端口号给Create方法。

Create方法的其它参数还可以包括Socket类型,准备响应的事件(只适用于CAsyncSocket)以及Socket应监听的网络地址(在计算机有多块网卡的情况下)。(www.xing528.com)

说明1:用MFC Winsock类可以创建两种Socket,一种是流式(或TCP)Socket,另一种是数据报(或UDP)Socket。流式Socket面向连接,以便保证数据的交付。数据报Socket是无连接的,需要编写代码确信数据报已被接收并在接收端数据是按发送顺序存放的。如果有个包未收到,也需要有代码让接收方申请重收此数据包,让发送方重发丢失的数据包。为指定流式Socket,把SOCKET_STREAM作为第二个参数传给Create方法。如是数据报Socket,则把SOCKET_DGRAM作为第二个参数。

说明2:如果建立的服务器准备运行在安装了多块网卡的计算机上,应该指定Socket准备监听的网络地址,告诉Socket它只监听特定网卡的连接请求。为此,把网络地址作为最后一个参数传给Create方法。这是CAsyncSocket类的第四个参数,也是CSocket类的第三个参数。网络地址应以字符串形式传送,以标准的TCP/IP形式127.0.0.1。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈