首页 理论教育 VisualC++高级编程技术与实例-连接应用

VisualC++高级编程技术与实例-连接应用

时间:2023-11-16 理论教育 版权反馈
【摘要】:在你接受连接后,可以起用提示符和编辑框,输入和发送消息给对方应用程序。而应用程序不会检测到连接被拒绝的情况,因为尚未添加任何错误检测机制来检测这一事件。如果计算机既没有网卡,也没有通过其他方式与因特网或外部网连接,就无法运行和测试计算机中的应用程序。图6-6连接两个应用程序

VisualC++高级编程技术与实例-连接应用

用户单击“连接”按钮后就禁止了对话框上顶端的所有控件。此时,用户不可修改对方计算机的设置,或修改应用程序的监听方式。可调用Create函数,其Socket变量依据应用程序运行在客户机上还是服务器上而定。最后,调用Connect或Listen函数初始化应用程序端的连接。为把此功能添加到应用程序,打开Class Wizard,对“连接”按钮(ID为IDC_BCONNECT)的BN_CLICKED事件消息添加一个函数,编辑此函数,添加程序清单6-6所示代码。

程序清单6-6 CSockDlg::OnBconnect函数

为完成这个连接,你应为对话类OnAccept和OnConnect事件函数添加Socket事件函数。这些函数是Socket类调用的,不需要任何参数,也不必返回任何结果码。OnAccept函数是在对方应用程序试图连接正在监听的Socket时调用的,你将调用Socket对象的Accept函数,传入连接Sock变量。在你接受连接后,可以起用提示符和编辑框,输入和发送消息给对方应用程序。

要把此函数添加给应用程序,对话类(CSockDlg)添加一个成员函数,把函数类型指定为Void,函数申明为OnAccept,访问方式为公用。编辑此函数,添加的代码如程序清单6-7所示。

程序清单6-7 CSockDlg::OnAccept函数

在客户机端,连接完成后只需使用消息输入和发送的控件即可。还应使用Close按钮关闭客户机端的连接。为把此功能添加给对话类(CSockDlg),函数类型指定为void,函数声明为OnConnect,访问方式为公用。编辑此函数,添加的代码如程序清单6-8所示。

程序清单6-8 CSockDlg::OnConnect函数(www.xing528.com)

现在你可以编辑和运行应用程序了。可启动两份拷贝,一个设置成监听模式,然后把它与另一个连接起来。不过,很可能不能立即编译程序,因为Socket类在对话类中还缺几个函数,这些函数至今尚未添加。添加3个成员函数给对话框类(CSockDlg),都定义成void类型,公有的访问方式,第1个函数声明为OnSend,第2个为OnReceive,第3个为OnClose。这样,就可以编译应用程序了。

编译后,同时启动程序两份拷贝,一个是在服务器端,单击“监听”按钮设置成监听模式,另一个在客户端,单击“连接”按钮与服务器连接。连接后,连接控件被禁用,消息发送控件被起用,如图6-6所示。

提示:在客户端应用程序试图与服务器应用程序连接之前,后者务必处在监听模式,否则连接将被拒绝。而应用程序不会检测到连接被拒绝的情况,因为尚未添加任何错误检测机制来检测这一事件。

提示:为了连接运行这些程序,计算机需要运行TCP/IP协议。如果计算机中有网卡,恐怕已经运行TCP/IP了。如没有网卡,用Modem与Internet连接,在运行测试这些应用程序时,计算机应先连接因特网。通过Modem连接Internet后,计算机一般先运行TCP/IP。如果计算机既没有网卡,也没有通过其他方式与因特网或外部网连接,就无法运行和测试计算机中的应用程序。

图6-6 连接两个应用程序

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

我要反馈