- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- TA054301 ECC故障处理ISSUE1.0.ppt
- 第9讲 销售区域管理.ppt
- 基于分区分层技术的AGC稳定断面潮流的自动控制系统.doc
- 学习情景5_微机点火系统的检修.ppt
- 公差配合课堂配套练习题.doc
- 我国区域经济发展的财税特征及其对策.doc
- 二期工程施工流程及质量管理要求1.ppt
- 用VB写高效的图像处理程序.doc
- 第七部分 多媒体技术及图像处理.ppt
- 软件技术基础-操作系统.ppt
- 25上半年2期套题班-行政职业能力测验(八).docx
- 公考讲义-2025年1月时政汇总.pdf
- 2025年省考逻辑填空1000 高频实词积累+刷题早读课 讲义.pdf
- 25上半年2期套题班-行政职业能力测验(九).docx
- 2025四川事业编FB综合岗考试-综合能力测试讲义-主观题基础,案例分析题,公文写作及文章写作题.pdf
- 25上半年2期套题班-行政职业能力测验(五).docx
- 2025申论多省联考刷题课真题资料-2025国考执法课程.doc
- 2025申论多省联考刷题课真题资料-2024江西执法课程.doc
- 25上半年2期套题班-行政职业能力测验(十).docx
- 2025申论多省联考刷题课真题资料-2024福建县乡课程.doc
最近下载
- 2024年湖南株洲茶陵县自然资源局招聘8人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 干式变压器安装使用说明书-中英文对照.pdf
- 【IQVIA】医疗器械带量采购洞察:规则下、常态下的企业商业管理水平考量.pdf
- 新高考语文二轮复习晨读晚练60天(第4天)- 备战2024年新高考语文二轮复习晨读晚练60天(全国通.docx VIP
- 基于核心素养的体育教学改革与实践探讨教学研究课题报告.docx
- 2024四川两弹一星干部学院第三批招聘10人笔试备考试题及答案解析.docx
- 智慧小区全面解决方案.pptx VIP
- (完整版)韦氏儿童智力测试试题 .pdf VIP
- Q∕GDW 11316-2018 高压电缆线路试验规程.pdf
- 小学三好学生竞选ppt课件.pptx
文档评论(0)