- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《网络 程序设计》
课 程 设 计 报 告 书
题 目:局域网文件传输与消息通信
专 业:网络工程
学 号
学生姓名:史政法
指导教师:魏宁
完成日期:2012年06月06日
题目及要求
Window程序设计的基本要求:
1.熟练掌握网络的基本概念和原理;
2.熟练掌握网络编程接口Socket概念及编程原理;
3.掌握基于TCP/IP的Internet编程技术;
4.掌握各种软件开发工具的使用过程及方法。
图1—-程序主对话框中的控件属性
图2—-对话框中的控件对象定义相应的成员变量
编程思路:首先在对话框中输入要连接的IP地址,然后单击“启动”按钮,要连接的主机也做相同的操作,两边都准备完事后,两台计算机就可以消息和文件的传输了。
单击“启动”按钮时,处理函数启动了监听线程来启动服务,主要的语句如下:pThreadListen = ::AfxBeginThread(_ListenTcpThread,this);
点击“发送消息”按钮时,处理函数启动了消息发送线程来进行消息的传送,语句如下:
pThreadSendMsg = ::AfxBeginThread(_SendMsgThread,this);
当点击“传送文件”按钮时,处理函数启动了文件传输线程来进行文件传输,语句如下:
pThreadSendMsg = ::AfxBeginThread(_SendFileThread,this);
下面主要介绍一下要用到的三个线程和一个文件接收处理函数。首先要产生三个线程对象:
CWinThread _ListenTcpThread;
CWinThread _SendFileThread;
CWinThread _SendMsgThread;
系统详细设计
监听线程函数
UINT _ListenTcpThread(LPVOID lparam)
{
CFiletranDlg *pDlg=(CFiletranDlg *)lparam;
if(pDlg-StopServer==true) return -1;
CSocket sockSrvr;
pDlg-m_Potr=PORT;//保存当前使用端口,用于关闭
int createSucceed=sockSrvr.Create(pDlg-m_Potr);
if(createSucceed==0)
{
AfxMessageBox(_ListenTcpThread Create错误!+pDlg-GetError(GetLastError()));
return -1;
}
int listenSucceed=sockSrvr.Listen(); //开始监听
if(listenSucceed==0)
{
AfxMessageBox(_ListenTcpThread Listen错误!+pDlg-GetError(GetLastError()));
return -1;
}
CSocket recSo;
SOCKADDR_IN client;
int iAddrSize=sizeof(client);
int acceptSucceed=sockSrvr.Accept(recSo,(SOCKADDR *)client,iAddrSize); //接受连接并取得对方IP
if(acceptSucceed==0)
{
AfxMessageBox(_ListenTcpThread Accept错误!+pDlg-GetError(GetLastError()));
return -1;
}
sockSrvr.Close();//关闭
char flag[FLAG]={0};
if(recSo.Receive(flag,FLAG)!=2)
{
return -1;
}
pDlg-m_type=flag[0];
if(pDlg-m_type==D) return 0;
pThreadListen=::AfxBeginThread(_ListenTcpThread,pDlg);
pDlg-ReceiveFileMsg(recSo,client);
return 0;
}
传送文件线程函数
UINT _SendFileThread(LPVOID lparam)
{
CFiletranDlg *pDlg=(CFiletranD
您可能关注的文档
最近下载
- 日立牌SET-FREE AⅢ系列产品提案书20240628.docx VIP
- AquaECO特灵产品技术手册20231212.pdf VIP
- 中考语文成语易错48道选择题(有详细解析).pdf VIP
- 天津钢管集团股份有限公司.pdf VIP
- 海尔物联多联MAX样册2025-4-10.pdf VIP
- 2023年小升初语文专项练习《地名人名拼写规则》(含答案).docx VIP
- 辅警结构化面试题及答案(2025年.docx VIP
- SET-FREE AⅢ产品样册-日立.pdf VIP
- 105656-海尔智慧楼宇检测中心概况(实验室布局,测试能力范围,实验室介绍,数字化测试,实验室认证).docx VIP
- 井控考试试题库(DOC) .pdf VIP
文档评论(0)