?网络程序设计?
课程设计报告书
题目:局域网文件传输与消息通信
专业:网络工程
学号:20211423
学生姓名:史政法
指导教师:魏宁
完成日期:2021年06月06日
一、题目及要求
Window程序设计的根本要:Passname:AddClass...,
nieiran:||cFll£tranDlg*
AddVariable...
,D:l•八Filetr注nDlg>cpp—二
IDCANCEL
DeleteVariable
Description:maptoCIPAddressCtrlmember
0in
oluv
图2——对话框中的控件对象定义相应的成员变量
编程思路:首先在对话框中输入要连接的IP地址,然后单击“启动〞按钮,要连接的
主机也做相同的操作,两边都准备完事后,两台计算机就可以消息和文件的传输了.
单击“启动〞按钮时,处理函数启动了监听线程来启动效劳,主要的语句如下:
pThreadListen=::AfxBeginThread(_ListenTcpThread,this);
点击“发送消息〞按钮时,处理函数启动了消息发送线程来进行消息的传送,语句如下:
pThreadSendMsg=::AfxBeginThread(_SendMsgThread,this);
当点击“传送文件〞按钮时,处理函数启动了文件传输线程来进行文件传输,语句如下:
pThreadSendMsg=::AfxBeginThread(_SendFileThread,this);
象:
CWinThread_ListenTcpThread;
CWinThread_SendFileThread;
CWinThread_SendMsgThread;
三、系统详细设计
.监听线程函数
UINT_ListenTcpThread(LPVOIDlparam){
CFiletranDlg*pDlg=(CFiletranDlg*)lparam;
if(pDlg->StopServer==true)return-1;
CSocketsockSrvr;
pDlg->m_Potr=PORT;〃保存当前使用端口,用于关闭
intcreateSucceed=(pDlg->m_Potr);
if(createSucceed==0)
AfxMessageBox("_ListenTcpThreadCreate错误!"+pDlg->GetError(GetLastError()));return-1;
}
intlistenSucceed=();〃开始监听
if(listenSucceed==0)(
AfxMessageBox("_ListenTcpThreadListen错误!"+pDlg->GetError(GetLastError()));return-1;
}
CSocketrecSo;
SOCKADDR_INclient;
intiAddrSize=sizeof(client);
intacceptSucceed=(recSo,(SOCKADDR*)&client,&iAddrSize);〃接受连接并取得对方IP
if(acceptSucceed==0)(
AfxMessageBox("_ListenTcpThreadAccept错误!"+pDlg->GetError(GetLastError()));return-1;
}
();//关闭
charflag[FLAG]={0};
if((flag,FLAG)!=2){
return-1;
}
pDlg->m_type=flag[0];
if(pDlg->m_type=='D')return0;
pThreadListen=::AfxBeginThread(_ListenTcpThread,pDlg);pDlg->ReceiveFileMsg(recSo,client);
return0;
}
.传送文件线程函数
UINT_SendFileThread(LPVOIDlparam){
CFiletranDlg*pDlg=(CFiletranDlg*)lparam;
if(pDlg->StopServer==true)return-1;
CSocketsockClient;
()
局域网文件传输及消息发送 来自淘豆网m.daumloan.com转载请标明出处.