基于select I/O模型的远程目录浏览与多线程文件下载
2007-03-17 22:00:56 来源:WEB开发网核心提示: 另外, 线程写入的数据要及时刷新文件流,否则, 程序等到缓冲区满时才真正写入文件的, 结果就是文件乱七八糟了,基于select I/O模型的远程目录浏览与多线程文件下载(4),5双循环程序这个问题是在这个项目编程遇到的.双循环的程序如下:CString strArray[6];char*
另外, 线程写入的数据要及时刷新文件流。否则, 程序等到缓冲区满时才真正写入文件的, 结果就是文件乱七八糟了。
5 双循环程序
这个问题是在这个项目编程遇到的.双循环的程序如下:
CString strArray[6];
char* pChar = "abc1|abc2|abc3|ac";
int len = strlen( "abc1|abc2|abc3|ac" );
int i=0,j=0;
while( i<= len && j<=6 )
{
int k = 0;
while( pChar[i]!='|' )
{
strArray[j].Insert( k, pChar[i] );
i++;
k++;
}
i++;
j++;
}
调试的时候, i>len程序像得了疯牛病一样还是往前跑, 不会停下来。要确保正确性, 内循环应该修改如:
while( pChar[i]!='|' && i<=len )
6 memcpy预分配空间
在程序中对全局变量已经分配了一次空间char[2000], 在后续的使用中程序不会有问题, 但当整个程序关闭时却冒出一个提示框说程序遇到一个问题需要关闭。把后续使用memcpy对这个变量赋值时, 如果小于1993个char空间就不会出现前面说到的提示框。
后来试着在第二次使用时再次给该变量分配了一次空间, 之后一切正常了。不知何解, 睇来memcpy的确不是安全的东西。
三 重要程序说明:
1 select I/O模型框架
select I/O模型对于大访问量的网络特别有效。 在服务器端, 可以建立多个线程, 每个线程创建可同时创建一个读写fd_set。 fd_set的默认大小为64, 即在默认的情况下一个Set最多可以接受64个socket的连接。
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
更多精彩
赞助商链接