MFC利用Socket实现连接

上传人:M****1 文档编号:500654527 上传时间:2022-09-11 格式:DOC 页数:3 大小:19KB
返回 下载 相关 举报
MFC利用Socket实现连接_第1页
第1页 / 共3页
MFC利用Socket实现连接_第2页
第2页 / 共3页
MFC利用Socket实现连接_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《MFC利用Socket实现连接》由会员分享,可在线阅读,更多相关《MFC利用Socket实现连接(3页珍藏版)》请在金锄头文库上搜索。

1、MFC利用CString实现连接首先,必须说一下SOCKET连接的理论步骤:1、在服务器端声明一个用于监听客户端的SOCKET对象,同时对应某个端口设定为监听状态;2、在客户端声明SOCKET对象,并通过IP和端口向服务器请求连接;3、服务器端监听到请求指令后,新建一个SOCKET对象,用于与客户端绑定,传送和接收数据,服务器用于监听的SOCKET继续监听下一个客户端的请求。接下来,我们开始正式着手:1、服务器端的建立我们先新建一个Server项目(MFC应用程序,基于对话框,Windows套接字打上勾),然后我们项目-添加类-MFC类,添加一个基于CSocket的子类CListen,点击完成

2、。这个类我们用于监听。接下来,我们需要像添加CListen类一样,添加一个CRecv类,该类用于绑定客户端,实现文件的传输。现在,我们在CListen的头文件中添加#includeRecv.h,并且声明一个指向CRecv类对象的指针,如CRecv*recv。接下来呢,我们在类视图中点中CListen类,点属性-重写-OnAccept。在OnAccept函数中,我们添加以下代码:recv=newCRecv();Accept(*recv);这段代码的作用是在当服务器监听到客户端的连接请求时,新建一个CRecv的成员,并用它来接受客户端的连接请求,也就是用它与客户端绑定。这样,我们CListen类就

3、已经写完了,接下来我们去完成CRecv类,同样,我们在类视图中点中CRecv类,点属性-重写-OnReceive。在OnReceive函数中,我们添加以下代码:Receive(str,100);CStringstrtest;strtest=str;AfxMessageBox(strtest);这段代码用于接收客户端发送过来的字符串,然后以MessageBox的形式显示出来。最后,在主对话框的头文件中添加#includeListen.h,并且声明一个CListen变量m_listen。然后,在主对话框的OnInitDialog函数中,添加如下代码:m_listen.Create(8888);/8

4、888表示的是我们要监听的端口m_listen.Listen();如此一来,服务器的事情我们已经完成了。2、客户端的建立相比于服务器,客户端就简单多了,因为它只需要一个SOCKET。我们先新建一个Client项目(MFC应用程序,基于对话框,Windows套接字打上勾),然后我们项目-添加类-MFC类,添加一个基于CSocket的子类CMySocket,点击完成。这个类我们用于和客户端的连接和收发数据。然后,在主对话框的头文件中添加#includeMySocket.h,并且声明一个CMySocket类对象,如CMySocketm_mySocket;接着,我们得再主对话框的OnInitDialo

5、g函数中添加m_mySocket.Creat();初始化SOCKET这时候,我们可以为主对话框添加一个按钮,caption设为“连接”,用于连接。双击这个按钮,开始函数定义,在函数体中我们加入以下代码:m_mySocket.Connect(_T(127.0.0.1),8888);第一个参数表示想要连接的服务器的IP,第二个参数表示端口。现在,客户端与服务器的连接工作已经做好了,我们需要再在客户端的主对话框中添加一个按钮,caption设为“发送”,用于发送信息,在改按钮的函数中,我们添加以下代码:m_mySocket.Send(”客户端发来了信息,100);参数分别表示要发送的字符串和字符串的最大长度这下,大功告成了,先运行服务器,然后运行客户端,点击客户端的“连接”按钮,接着点击“发送”,看服务器窗口,弹出了MessageBox,“客户端发来了信息”。*在上面的例子中,我们只是客户端向服务器单向发送数据,如果想要双向发送数据,那么只需像服务器一样在客户端的CMySocket类重写一个OnReceive函数,并且在服务器添加一个用于发送的按钮就可以了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号