QQ局域网基于多线程的聊天软件的编写_第1页
QQ局域网基于多线程的聊天软件的编写_第2页
QQ局域网基于多线程的聊天软件的编写_第3页
QQ局域网基于多线程的聊天软件的编写_第4页
QQ局域网基于多线程的聊天软件的编写_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实战2012高技术的hacker黄今天无私的教大家利用的做局域网的软件很难吗?很难吗?很难吗?做个软件很难吗?答案是不难,因为今天高技术的hacker黄今天教大家利用的做局域网的软件。废话少说,现在直接带领大家实战做个局域网的qq软件用c+。事件 2012年11月14号夜晚,湖北大学实验室,实验结果做出一个如下截图的qq软件 事件发起人 hacker黄下面为了大家更好的理解实战类容,首先 我将按逻辑的将本次试验叙述下来,不怕不懂,我将把每一步的截图和代码打出来,大家只需要看着截图,结合代码就行了哦哈哈施展正式开始:第一做局域网qq界面打开vc6.0新建一个工程文件第二 选择对话框,点击界面接好

2、了第三 删去对话框中的初始控件,第三 添加一个组框控件截图如下第四 设置组框组建的属性截图如下,并将其caption属性设置为接收数据截图如下第五 添加一个编辑框控件并设置其属性截图如下,并将其id号吗改为idc_edit_recv截图如下用来显示用户接收到的数据第六 再次添加一个组框并将其属性设置为发送数据第七 在发送数据组框添加一个ip控件第八 在选择一个一个编辑框控件,并设置其id号,用来放松疏忽需要发送的数据截图如下第九添加一个发送的按钮,并将其id号吗改为idc_btn_send第十 展示最终的c+mfcqq界面截图如下第十一 加载套接字库截图如下,并添加代码如下补加的的代码如下if

3、(!afxsocketinit() afxmessagebox(加载套接字库失败); return false;第十二 增加一头文件,截图及代码如下 代码如下#include第十三 增加一个成员变量的函数及代码第十四 增加一个成员变量并将其权限设为私有截图如下第十五 在初始化套接字函数中输入初始化相关代码m_socket=socket(af_inet,sock_dgram,0); if(invalid_socket=m_socket) messagebox(套接字失败);return false; sockaddr_in addrsock; addrsock.sin_family=af_ine

4、t; 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;第十六 调用初始化套接字函数 在nitdialoginitsocket();到此套接字的初始化工作全部完

5、成了第十七 开始编写接收端的程序 创建线程函数及代码如下首先定义一个结构体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);第十九 开始写线程函数,现增加一个成员函数

6、以相关代码,如下第二十修还代码中的2个地方分别是如下第二十一 再次运行又有一个错误在改正,这次是变函数为静态变量第二十二 再创建的函数中输入相关代码,及服务端主要的代码socket sock=(recvparam*)ipparameter)-sock; hwnd hwnd=(recvparam*)ipparameter)-hwnd; sockaddr_in addrfrom; int len =sizeof(sockaddr); char recvbuf200; char tempbuf300; int retval;while(true)retval =recvfrom(sock,recvb

7、uf,200,0,(sockaddr*)&addrfrom,&len); if(socket_error=retval) break; sprintf(tempbuf,%s说:%s,inet_ntoa(addrfrom.sin_addr),recvbuf); :postmessage(hwnd,wm_recvdata,0,(lparam)tempbuf);第二十三 定义消息得值 #define wm_recvdata wm_user+1第二十四 做一个消息相应的函数afx_msg void onrecvdata(wparam wparam,lparam lparam);第二十五 写一个消息映射

8、的函数截图代码如下on_message(wm_recvdata,onrecvdata)第二十六 消息响应函数的实现代码代码如下void cchatdlg : onrecvdata(wparam wparam,lparam lparam) cstring str=(char*)lparam; cstring strtemp; getdlgitemtext(idc_edit_recv,strtemp); str +=rn; str +=strtemp; setdlgitemtext(idc_edit_recv,str);第二十七 哈哈总结下至此服务端全部编写结束,程序调试正确第二十八 开始编写发送

9、端进入对话框页面 单机发送按钮 发送按钮函数第二十九 编写发送端的函数代码/ todo: add your control notification handler code here dword dwip; (cipaddressctrl*)getdlgitem(idc_ipaddress1)-getaddress(dwip); sockaddr_in addrto; addrto.sin_family=af_inet; addrto.sin_port=htons(6000); addrto.sin_addr.s_un .s_addr =htonl(dwip); cstring strsend; getdlgitemtext(idc_edit_send,strsend); sendto(m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论