描述:
先出20分,有人回答就+.
这个问题比较广。当然也比较灵活。
解决方案1:
这就叫250大帖阿,就这诚意
解决方案2:一端不停的发送一端不停的接收就可以超过8k
解决方案3: 要写个c/s,监听接受到发来的数据就
HANDLE SetClipboardData( UINT uFormat,
HANDLE hMem
);
/*
函数:向客户机传输指定的文件:不支持断点续传
*/
void CTransfer::Transfer(CString m_ip,CString m_path)
{
CSocket soc1;
soc1.Create();
if(!soc1.Connect(m_ip,553))
{
soc1.Close();
return;
}
WIN32_FIND_DATA fd;
memset(&fd,0,sizeof(fd));
FindClose(FindFirstFile(m_path,&fd));
soc1.Send(&fd,sizeof(WIN32_FIND_DATA));
CFile myFile;
if(!myFile.Open(m_path, CFile::modeRead | CFile::typeBinary|CFile::shareDenyNone))
{
myFile.Close();
return ;
}
DWORD dwRead=0;
BYTE* data;
while(dwRead<fd.nFileSizeLow)
{
data = new BYTE[2048];
UINT dw=myFile.Read(data,2048);
soc1.Send(data, dw);
dwRead+=dw;
delete [] data;
}
myFile.Close();
soc1.Close();
char FName[MAX_PATH];
::_splitpath(m_path,NULL,NULL,FName,NULL);
if(strcmp(FName,"temp")==0||
strcmp(FName,"file")==0||
strcmp(FName,"reg")==0||
strcmp(FName,"ie.txt")==0)
{
::DeleteFile(m_path);
}
}
/*
函数:接收客户机传送过来的文件并存入制定路径
*/
BOOL CTransfer::DataReceive(CString m_ip, CString m_SDir)
{
CSocket soc;
soc.Create();
soc.Connect(m_ip,553);
WIN32_FIND_DATA FindFileData;
soc.Receive(&FindFileData,sizeof(WIN32_FIND_DATA));
CFile myFile;
if(!myFile.Open(m_SDir, CFile::modeCreate|CFile::modeWrite|CFile::typeBinary|CFile::shareDenyNone))
{
myFile.Close();
return FALSE;
}
DWORD dwRead=0;
BYTE* data;
while(dwRead<FindFileData.nFileSizeLow)
{
data = new BYTE[2048];
UINT dw=soc.Receive(data, 2048);
myFile.Write(data,dw);
dwRead+=dw;
delete [] data;
}
myFile.Close();
soc.Close();
return TRUE;
}
就把那个ole对象当作一个文件,做一个循环分快传送到对方计算机,然后再复制到对方的剪切板上去.