多线程(多连接)上传文件

 最近在写多连接发送多媒体流的过种中,先拿传文件做实验,其实有区别:
1.文件写是可以乱序的,没有排序的问题,多媒体流要排序后才能实时观看.
2.说明一下,多连接!=多线程,标题是方便别人查找^___^

我是这样做的
1.定义一结构,声明一变量A.主要是文件唯一的读流标,这里有个locker,整个代码就这个锁
2.每个发送连接共享"读"打开一个FILE* f,locker让系统去处理吧
3.每个连接的onSend中先从A取读流标,同时更新读流标,然后fread,send(buf,readpos,len)
  即把读取游标、长度和数据一并发出.
4.每个接收连接共享"写"打开一个FILE* f,收到数据后,fseek(f,SEEK_SET),fwrite(f,buf,len);
  locker让系统去处理吧

说明几点
1.写完后在windows下跑过,OK,linux下还没跑过.
2.测试过比单连接快N多(没白写),buf的大小最好适中,连接数也要适中.
3.如果照搬原理的话,可能会很伤硬盘(没做缓存)^___^.
4.为什么不用IOCP读写文件,原因:linux和代码量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值