- 1
- 0
- 约4.61千字
- 约 8页
- 2018-11-29 发布于天津
- 举报
功能服务器先初始化,客户端选择一个人间发送给服务器,
功能:服务器先初始化,客户端选择一个人间发送给服务器,服务器接收客户端的信息,并存储。
1、服务器端代码:
(A)在ftpserverDlg.cpp文件中的声明、全局变量的定义等如下所示:
#define WM_MSG_LISTENING WM_USER+1
#define WM_MSG_BIND WM_USER+2
#define WM_MSG_ACCEPT WM_USER+3
#define WM_MSG_RECV WM_USER+4
#define WM_MSG_FINISHED WM_USER+5
CString g_csTips;
HWND g_hWnd;
DWORD WINAPI Thread_RecvFile(PVOID lParam);//自定义函数ThreadRecvFile
(B)在ftpserverDlg,h中定义的成员变量的定义如下所示:
protected:
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
(C)在BOOL CftpserverDlg::OnInitDialog()添加代码如下:
g_hWnd=CftpserverDlg::m_hWnd;
(D)初始化按钮的代码如下所示:
//创建一个线程函数,名称为ThreadRecvFile
CreateThread(NULL,0,Thread_RecvFile,NULL,0,NULL);
(E)Thread_RecvFile()函数的代码如下所示:
DWORD WINAPI Thread_RecvFile(LPVOID lParam)
{ //定义套接字
SOCKET sock;
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//定义sockaddr_in类型的结构体变量
sockaddr_in sa;
sa.sin_family=AF_INET;
sa.sin_addr.S_un.S_addr=inet_addr();
sa.sin_port=htons(8888);
//绑定指定的地址和一个套接字成功
if((bind(sock,(sockaddr*)sa,sizeof(sa)))!=SOCKET_ERROR)
{
SendMessage(g_hWnd,WM_MSG_BIND,0,0);//显示已经绑定到指定端口
}
//指示一个套接字等待连接
if((listen(sock,SOMAXCONN))!=SOCKET_ERROR)
{
SendMessage(g_hWnd,WM_MSG_LISTENING,0,0);//显示正在监听等待客户连接
}
SOCKET socknew;
socknew=accept(sock,NULL,0);
if(socknew!=SOCKET_ERROR)
{
SendMessage(g_hWnd,WM_MSG_ACCEPT,0,0);
}
closesocket(sock);
CString csPathFile;//表示文件的路径的变量
csPathFile=e://1.txt;
CFile fDst;
fDst.Open(csPathFile,CFile::modeCreate|CFile::modeWrite);
char szBuf[1024];
SendMessage(g_hWnd,WM_MSG_RECV,0,0);//发送文件正在接受的消息
int rnet;//接受客户端发送的文件
while((rnet=recv(socknew,szBuf,1024,0))0)//接受到的文件不为空
{
fDst.Write(szBuf,rnet);//将接收到的内容写入缓冲区szBuf
}
closesocket(socknew);
fDst.Close();//关闭文件
SendMessage(g_hWnd,WM_MSG_FINISHED,0,0);//发送一条文件传输完毕的消息
return(0);
}
(F)WindowProc代码如下所示:
LRESULT CftpserverDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{ switch(message)
{
case WM_MSG_LISTENING:
g_csTips+=\r\n正在侦听......;
SetDlgItemText(IDC_EDIT1,g_csTips);
break;
case WM_MSG_
您可能关注的文档
最近下载
- T_SXDZ 035—2020_矿井奥灰水带压开采安全性评价报告编制细则.pdf VIP
- 项目管理样板点策划方案.pdf VIP
- 广东省教育科学研究课题开题报告书模版.pdf VIP
- 90S503_格栅、格网及起吊架.pdf VIP
- DB61T 1417-2021 水工隧洞施工通风技术规范.docx VIP
- JTG B05-01-2013 公路护栏安全性能评价标准.docx VIP
- 一种高速离心空压机与膨胀机集成装置.pdf VIP
- 2026年中考语文一轮复习(河南)古诗词阅读 古诗词曲对比整合 课件(共69张ppt).pptx VIP
- BOSE博士 3·2·1® 家庭娱乐系统 用户指南支持 多语言.pdf
- 《勾股定理》练习题及答案.doc VIP
原创力文档

文档评论(0)