if(!fs.fail()){
while(!fs.eof())
{
fs.read(buffer,lineLength);
send(s,buffer,lineLength,NULL);
}
fs.close();
}
}
(4) 获取文件长度。二进制打开文件,移动指针到文件尾,获取文件长度,关闭文件。程序如下:
__int64 getFileLength(char *Path)
{
ifstream fs(Path, ios::binary );
__int64 fileLength;
if(!fs.fail()){
fs.seekg(0,ios::end);
fileLength=fs.tellg();
fs.close();
}else{
cout<<"文件不存在!"<<endl;
}
return fileLength;
}
(5) 输入目标IP地址。程序如下:
void inputIP()
{
system("cls");
char tmp[2];
tmp[1]=0;
cout<<"输入本地IP地址:";
while((tmp[0]=getch())!=13)
{
if(tmp[0]>='0' && tmp[0]<='9' || tmp[0]=='.'){
localIP.append(tmp);
cout<<tmp[0];
}else if(tmp[0]==8&&localIP.length()>0){
cout<<"\b \b";
localIP=localIP.substr(0,localIP.length()-1);
}
}
if(localIP.length()<4)
{
localIP.clear();
localIP.append("127.0.0.1");
}
}
(6) 设置TCPIP读取线程。设置缓存,然后接受数据,再判断是否有数据,是否远程主机发送文件s、文件长度、文件名;获取文件长度和文件名,发送准备字符,创建D盘目录下文件,创建二进制打开文件,判断传输文件的剩余长度,写入文件,再关闭文件。或者接收为就绪字符,发送文件。最后清空字符,程序如下: C++无线数据传输系统设计+文献综述(9):http://www.youerw.com/tongxin/lunwen_4800.html