我已经实现了客户端与服务端的聊天功能.....想加上一个传送文件的功能....
同时实现聊天和收发文件我暂时不处理了....
我现在想实现文件的双向传输....
在一端取得文件信息后 点击(发送)...后 等待....
在接收端想实现(确定接收)...或者(另存为)..或者..(拒绝)
接收端点击(确定接收)...或者(另存为).. 怎么触发发送端 的发送呢
我不知道怎么实现这个(触发).....{发送端只设置(发送按钮)..} 希望高手能指点指点 或者贴点例子代码 谢谢!!!!
同时实现聊天和收发文件我暂时不处理了....
我现在想实现文件的双向传输....
在一端取得文件信息后 点击(发送)...后 等待....
在接收端想实现(确定接收)...或者(另存为)..或者..(拒绝)
接收端点击(确定接收)...或者(另存为).. 怎么触发发送端 的发送呢
我不知道怎么实现这个(触发).....{发送端只设置(发送按钮)..} 希望高手能指点指点 或者贴点例子代码 谢谢!!!!
我定义一个结构
StreamFileInfo.dwFileAttributes = FindFileData.dwFileAttributes;
StreamFileInfo.ftCreationTime = FindFileData.ftCreationTime;
StreamFileInfo.ftLastAccessTime = FindFileData.ftLastAccessTime;
StreamFileInfo.ftLastWriteTime = FindFileData.ftLastWriteTime;
StreamFileInfo.nFileSizeHigh = FindFileData.nFileSizeHigh;
StreamFileInfo.nFileSizeLow = FindFileData.nFileSizeLow;
StreamFileInfo.cAlternateFileName=
(TCHAR)FindFileData.cAlternateFileName;
StreamFileInfo.cFileName = (TCHAR)FindFileData.cFileName;send(ServerSocket,(char *)&StreamFileInfo, sizeof(SOCKET_STREAM_FILE_INFO),0);//这里发送文件信息....
//接下来我就不知道怎么处理了 , 发送了文件信息等待接收端接收或者拒绝...回复过来接收或者拒绝时候这里怎么处理呢 我就不知道这个下面的代码该怎么触发...下面再加一个rev来接收接收端的接收或者拒绝信息会阻塞吧? UINT nSize=0;
UINT nSend=0;
while(nSize < StreamFileInfo.nFileSizeLow)
{
//byte * szBuf=new byte[1024];
char * szBuf=new char[1024];
nSend=myFile.Read(szBuf, 1024);
send(ServerSocket,(char *)&szBuf, sizeof(szBuf),0);
nSize+=nSend;
}
{
int type; // 0 = 拒绝、1= 接受(另存根本就不用关心的)
...
}接收端无论是拒绝还是接受都发送上面的结构给发送端,发送端接收到应答以后判断 type 是否为1,如果为1则开始文件的发送。