void Client(char *filename) { int clientSocketDescriptor; int connectResult; FILE *rdfile; rdfile = fopen(filename, "r"); if (rdfile == NULL) { puts ("Error while opening file."); return; } clientSocketDescriptor = StartClient("tcp"); connectResult = ClientConnect(clientSocketDescriptor, "127.0.0.1", 6660); if (connectResult == -1) { return; } if (SendFileName(clientSocketDescriptor, filename) == -1) { return; } if (SendFileSize(clientSocketDescriptor, rdfile) == -1) { return; } ClientProcess(clientSocketDescriptor, rdfile); ShutdownSocket(clientSocketDescriptor); CloseSocket(clientSocketDescriptor); fclose(rdfile); return; }
// 传送下一个文件 void CFileManager::UploadNext() { list <string>::iterator it = m_UploadList.begin(); // 删除一个任务 m_UploadList.erase(it); // 还有上传任务 if(m_UploadList.empty()) { SendToken(TOKEN_TRANSFER_FINISH); } else { // 上传下一个 it = m_UploadList.begin(); SendFileSize((*it).c_str()); } }
bool CFileManager::UploadToRemote(LPBYTE lpBuffer) { if (lpBuffer[lstrlen((char *)lpBuffer) - 1] == '\\') { FixedUploadList((char *)lpBuffer); if (m_UploadList.empty()) { StopTransfer(); return true; } } else { m_UploadList.push_back((char *)lpBuffer); } list <string>::iterator it = m_UploadList.begin(); // 发送第一个文件 SendFileSize((*it).c_str()); return true; }