网站大量收购独家精品文档,联系QQ:2885784924

c++ 使用socket实现C%S端文件的下载传输.doc

c++ 使用socket实现C%S端文件的下载传输.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c使用socket实现C%S端文件的下载传输

c++ 使用socket实现C/S端文件的下载传输 首先是服务器端,大致说下流程:服务器创建线程去处理应答accept(),当接受到客户端连接请求时,首先获取要发送的指定的文件数据总大小给客户端,接着就是循环读取要发送的文件数据流向客户端发送文件数据,每次都判断循环读取到的数据实际大小,当实际读取到的数据总大小为0时,表示文件发送结束。下面是服务器server端实现: 声明部分: public: afx_msg void OnBnClickedButton1(); public: BOOL InitSocket(); //初始化并创建套接字 static DWORD WINAPI ThreadProc(LPVOID lpParameter); //创建线程去执行服务器accept() 实现部分: void CSendFileServerDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 if (InitSocket()) { GetDlgItem(IDC_EDIT1)-SetWindowText(_T(服务器开启监听。。。 \r\n)); //创建线程 HANDLE hThread = CreateThread(NULL,0,ThreadProc,NULL,0,NULL); //关闭该接收线程句柄,释放引用计数 CloseHandle(hThread); } } BOOL CSendFileServerDlg::InitSocket() { //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, wsaData ); if ( err != 0 ) { return FALSE; } if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( ); return FALSE; } //创建套接字 //SOCKET m_socket=socket(AF_INET,SOCK_STREAM,0); m_socket=socket(AF_INET,SOCK_STREAM,0); if (m_socket == INVALID_SOCKET) { AfxMessageBox(_T(套接字创建失败!)); return FALSE; } SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(8099); err = bind(m_socket,(SOCKADDR*)addrSrv,sizeof(SOCKADDR)); //绑定本地端口 if (err==SOCKET_ERROR) { closesocket(m_socket); AfxMessageBox(_T(绑定失败!)); return FALSE; } listen(m_socket,5);//开启监听 return TRUE; } DWORD WINAPI CSendFileServerDlg::ThreadProc(LPVOID lpParameter) { SOCKADDR_IN addrClient; int len = sizeof(SOCKADDR); while (true) { SOCKET sockConn=accept(m_socket,(SOCKADDR*)addrClient,len); CString filename = _T(E:\\test.zip); HANDLE hFile; u

文档评论(0)

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

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

1亿VIP精品文档

相关文档