QQ局域网基于多线程的聊天软件的编写.doc

QQ局域网基于多线程的聊天软件的编写.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实战2012高技术的Hacker黄今天无私的教大家利用C++的MFC做局域网的QQ软件 QQ很难吗?C++很难吗?MFC很难吗?做个软件很难吗?答案是不难,因为今天高技术的Hacker黄今天教大家利用C++的MFC做局域网的QQ软件。废话少说,现在直接带领大家实战做个局域网的QQ软件用C++。 事件 2012年11月14号夜晚,湖北大学实验室,实验结果做出一个如下截图的QQ软件 事件发起人 hacker黄 下面为了大家更好的理解实战类容, 首先 我将按逻辑的将本次试验叙述下来,不怕不懂,我将把每一步的截图和代码打出来,大家只需要看着截图,结合代码就行了哦 哈哈 施展正式开始: 第一 做局域网QQ界面 打开vc6.0新建一个工程文件 第二 选择对话框,点击界面接好了 第三 删去对话框中的初始控件, 第三 添加一个组框控件截图如下 第四 设置组框组建的属性截图如下,并将其CAPTION属性设置为接收数据截图如下 第五 添加一个编辑框控件并设置其属性截图如下,并将其ID号吗改为IDC_EDIT_RECV截图如下用来显示用户接收到的数据 第六 再次添加一个组框并将其属性设置为发送数据 第七 在发送数据组框添加一个IP控件 第八 在选择一个一个编辑框控件,并设置其ID号,用来放松疏忽需要发送的数据 截图如下 第九添加一个发送的按钮,并将其ID号吗改为IDC_BTN_SEND 第十 展示最终的C++MFCQQ界面截图如下 第十一 加载套接字库截图如下,并添加代码如下 补加的的代码如下 if(!AfxSocketInit()) { AfxMessageBox(加载套接字库失败); return FALSE; } 第十二 增加一头文件,截图及代码如下 代码如下 #includeAfxsock.h 第十三 增加一个成员变量的函数及代码 第十四 增加一个成员变量并将其权限设为私有 截图如下 第十五 在初始化套接字函数中输入初始化相关代码 m_socket=socket(AF_INET,SOCK_DGRAM,0); if(INVALID_SOCKET==m_socket) { MessageBox(套接字失败); return FALSE; } SOCKADDR_IN addrSock; addrSock.sin_family=AF_INET; addrSock.sin_port=htons(6000); addrSock.sin_addr.S_un .S_addr =htonl(INADDR_ANY); int retval; retval=bind(m_socket,(SOCKADDR*)addrSock,sizeof(SOCKADDR)); if(SOCKET_ERROR==retval) { closesocket(m_socket); MessageBox(绑定失败); return FALSE; } return TRUE; 第十六 调用初始化套接字函数 在ONITDIALOG InitSocket(); 到此套接字的初始化工作全部完成了 第十七 开始编写接收端的程序 创建线程函数及代码如下首先定义一个结构体 struct RECVPARAM { SOCKET sock; HWND hwnd; }; 第十八 在ONINITDIAG中创建一个指针 RECVPARAM *pRecvParam=new RECVPARAM; pRecvParam-sock=m_socket; pRecvParam-hwnd=m_hWnd; HANDLE hThread=CreateThread(NULL,0,RecvProc,(LPVOID)pRecvParam,0,NULL); CloseHandle(hThread); 第十九 开始写线程函数,现增加一个成员函数以相关代码,如下 第二十修还代码中的2个地方分别是 如下 第二十一 再次运行又有一个错误在改正,这次是变函数为静态变量 第二十二 再创建的函数中输入相关代码,及服务端主要的代码 SOCKET sock=((RECVPARAM*)IpParameter)-sock; HWND hwnd=((RECVPARAM*)IpParameter)-hwnd; SOCKADDR_IN addrFrom; int len =sizeof(SOCKADDR); char recvBuf[200]; char tempBuf[300]; int retval; while(TRUE) { retv

文档评论(0)

mx597651661 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档