- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC利用Socket实现连接
MFC利用CString实现连接首先,必须说一下SOCKET连接的理论步骤:1、在服务器端声明一个用于监听客户端的SOCKET对象,同时对应某个端口设定为监听状态;2、在客户端声明SOCKET对象,并通过IP和端口向服务器请求连接;3、服务器端监听到请求指令后,新建一个SOCKET对象,用于与客户端绑定,传送和接收数据,服务器用于监听的SOCKET继续监听下一个客户端的请求。接下来,我们开始正式着手:1、服务器端的建立我们先新建一个Server项目(MFC应用程序,基于对话框,Windows套接字 打上勾),然后我们项目-添加类-MFC类,添加一个基于CSocket的子类CListen,点击完成。这个类我们用于监听。接下来,我们需要像添加CListen类一样,添加一个CRecv类,该类用于绑定客户端,实现文件的传输。现在,我们在CListen的头文件中添加#include Recv.h,并且声明一个指向CRecv类对象的指针,如CRecv *recv。接下来呢,我们在类视图中点中CListen类,点属性-重写-OnAccept。在OnAccept函数中,我们添加以下代码:recv = new CRecv();Accept(*recv);这段代码的作用是在当服务器监听到客户端的连接请求时,新建一个CRecv的成员,并用它来接受客户端的连接请求,也就是用它与客户端绑定。这样,我们CListen类就已经写完了,接下来我们去完成CRecv类,同样,我们在类视图中点中CRecv类,点属性-重写-OnReceive。在OnReceive函数中,我们添加以下代码:char str[100];Receive(str,100);CString strtest; strtest=str; AfxMessageBox(strtest);这段代码用于接收客户端发送过来的字符串,然后以MessageBox的形式显示出来。最后,在主对话框的头文件中添加#include Listen.h ,并且声明一个CListen变量 m_listen 。然后,在主对话框的OnInitDialog函数中,添加如下代码:m_listen.Create(8888); //8888表示的是我们要监听的端口 m_listen.Listen();如此一来,服务器的事情我们已经完成了。2、客户端的建立相比于服务器,客户端就简单多了,因为它只需要一个SOCKET。我们先新建一个Client项目(MFC应用程序,基于对话框,Windows套接字 打上勾),然后我们项目-添加类-MFC类,添加一个基于CSocket的子类CMySocket,点击完成。这个类我们用于和客户端的连接和收发数据。然后,在主对话框的头文件中添加#include MySocket.h,并且声明一个CMySocket类对象,如CMySocket m_mySocket;接着,我们得再主对话框的OnInitDialog函数中添加m_mySocket.Creat();//初始化SOCKET这时候,我们可以为主对话框添加一个按钮,caption设为“连接”,用于连接。双击这个按钮,开始函数定义,在函数体中我们加入以下代码:m_mySocket.Connect(_T(127.0.0.1),8888);第一个参数表示想要连接的服务器的IP,第二个参数表示端口。现在,客户端与服务器的连接工作已经做好了,我们需要再在客户端的主对话框中添加一个按钮,caption设为“发送”,用于发送信息,在改按钮的函数中,我们添加以下代码:m_mySocket.Send(客户端发来了信息,100);//参数分别表示要发送的字符串和字符串的最大长度这下,大功告成了,先运行服务器,然后运行客户端,点击客户端的“连接”按钮,接着点击“发送”,看服务器窗口,弹出了MessageBox,“客户端发来了信息”。*在上面的例子中,我们只是客户端向服务器单向发送数据,如果想要双向发送数据,那么只需像服务器一样在客户端的CMySocket类重写一个OnReceive函数,并且在服务器添加一个用于发送的按钮就可以了。
文档评论(0)