【笔记】多线程网络文件传输

本文介绍了如何利用Windows API中的多线程技术,结合CreateThread(), CreateEvent()和WaitForMultipleObjects()来控制线程,并利用CAsyncSocket类实现网络文件的传输。CAsyncSocket是对Windows Sockets API的封装,适用于熟悉网络通信的程序员,但需要处理一些底层细节如阻塞、字节序和字符集转换。主要涉及的CAsyncSocket成员函数包括Create(), Accept(), Bind(), Connect(), Listen(), Send(), SendTo(), Receive(), ReceiveFrom()以及ShutDown()和Close()。" 133995109,8753399,JavaScript实现海伦公式详解,"['javascript', '开发语言', 'ecmascript']
摘要由CSDN通过智能技术生成

多线程:每个正在系统上运行的程序都是一个进程。每个进程包含一个到多个线程。进程也可能是整个程序或者部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行,也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。多线程是为了使得多个线程并行以完成多项任务,来提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。


本实例利用Windows API函数CreateThread()完成多线程的创建

CreateEvent()创建事件对象函数

WaitForMultipleObjects()等待多对象事件函数来完成多线程之间的控制


利用CAsyncSocket类完成网络文件的传输


MFC的CAsyncSocket类对Windows Sockets API函数进行了封装,它是从CObject类派生出来的。该类在非常低的级别上封装Windows Sockets API。CAsyncSocket适合那些对网络通信细节很了解,但希望利用回调的便利通知网络事件的程序员使用。

如果想利用Windows Sockets方便地处理MFC应用程序中的多个网络协议,而又不想放弃灵活性,可以使用CAsyncSocket,但是程序员必须自己处理阻塞,字节序的差异和Unicode多字节字符集(MBCS)的转换。


该类的重要成员函数:

(1)Create():若调用成功,则返回非0值,否则返回0,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值