ErrorCode CTcpSocket::TcpRecv(const int &nSockfd, std::string &strRecv) { while(true) { char szRecvBuff[STRING_MAX_LENGTH] ={0}; int iRet = recv(nSockfd, szRecvBuff, STRING_MAX_LENGTH, 0); if (-1 == iRet) { return RET_FAILURE; } if (NUMBER_ZERO == iRet) { strRecv += static_cast<std::string>(STRING_EMPTY); }else { std::string strBuff(szRecvBuff, iRet); strRecv += strBuff;//static_cast<std::string>(szRecvBuff); } #ifdef WIN32 break; #else if (errno == EAGAIN) { break; } #endif } return RET_SUCCESS; }
/** 导出函数解密 * @Author : Double sword * @Params : * @Return : * @Date : 2011-8-9 */ __declspec(dllexport) int DeCrypto(char* strin,char ** strout) { //***********解密**********// CString str,strBuff(strin); BYTE key[16]={0x12,0x44,0x56,0x38,0x55,0x82,0x56,0x85,0x23,0x25,0x56,0x45,0x52,0x47,0x45,0x86}; AES aes1(AES::BIT128,key); BYTE input[16]; BYTE output[16]; CStringArray dest; Split(strBuff, dest,"x"); CString strSend; int lenx=dest.GetSize(); char *recv=new char[lenx]; recv[lenx-1]='\0'; int iMeg=(lenx-1)/16,i,j=0,k=0; while(iMeg) { i=0; for(j=16*((lenx-1)/16-iMeg);j<16*((lenx-1)/16-iMeg+1);j++) { input[i]=(unsigned char)strtol(dest[j],NULL,16); i++; } aes1.InvCipher(input,output); for(i=0;i<16;i++) { recv[k]=(char)output[i]; k++; } iMeg--; } *strout = recv; return k; }
BOOL IPLANET_MONITOR(char *url, int timeout, char *uid, char *pwd, char *pserver, int pport, char *puid, char *ppwd, char *custpath, char *szReturn) { int totalRequests = 0, badRequests = 0, status_2xx = 0, status_3xx = 0, status_4xx = 0, status_5xx = 0, status_xxx = 0, status_200 = 0, status_302 = 0, status_304 = 0, status_401 = 0, status_403 = 0; char msg[8192] = {0}; if(!GetUrlData(url, timeout, uid, pwd, pserver, pport, puid, ppwd, 8192, msg)) { sprintf(szReturn, "error=%s", msg); return FALSE; } int index = 0; int percent = 0; char tmp[256] = {0}; CString strBuff(msg); while(1) { index = strBuff.Find('<', 0); if(index < 0) break; int index2 = strBuff.Find('>', index); if(index2 < 0) break; strBuff.Insert(index, ':'); strBuff.Delete(index + 1, index2 - index + 1); } strBuff.Replace("\r\n", " "); strBuff.Replace(':', ' '); strBuff.MakeLower(); index = strBuff.Find("total requests", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_1%>"));//<%IDS_iPlanet_1%> return FALSE; } strBuff.Delete(0, index + 6); if(sscanf(strBuff, "%s %d", tmp, &totalRequests) != 2) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_2%>"));//<%IDS_iPlanet_2%> return FALSE; } index = strBuff.Find("bad requests", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_3%>"));//<%IDS_iPlanet_3%> return FALSE; } strBuff.Delete(0, index + 4); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &badRequests) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_4%>"));//<%IDS_iPlanet_4%> return FALSE; } index = strBuff.Find("2xx", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_5%>"));//<%IDS_iPlanet_5%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_2xx) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_6%>"));//<%IDS_iPlanet_6%> return FALSE; } index = strBuff.Find("3xx", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_7%>"));//<%IDS_iPlanet_7%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_3xx) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_8%>"));//<%IDS_iPlanet_8%> return FALSE; } index = strBuff.Find("4xx", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_9%>"));//<%IDS_iPlanet_9%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_4xx) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_10%>"));//<%IDS_iPlanet_10%> return FALSE; } index = strBuff.Find("5xx", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_11%>"));//<%IDS_iPlanet_11%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_5xx) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_12%>"));//<%IDS_iPlanet_12%> return FALSE; } index = strBuff.Find("xxx", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_13%>"));//<%IDS_iPlanet_13%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_xxx) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_14%>"));//<%IDS_iPlanet_14%> return FALSE; } if(status_xxx == 200) { index = strBuff.Find("200", 0); if(index >= 0) strBuff.Delete(0, index + 3); } index = strBuff.Find("200", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_15%>"));//<%IDS_iPlanet_15%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_200) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_16%>"));//<%IDS_iPlanet_16%> return FALSE; } if(status_200 == 302) { index = strBuff.Find("302", 0); if(index >= 0) strBuff.Delete(0, index + 3); } index = strBuff.Find("302", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_17%>"));//<%IDS_iPlanet_17%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_302) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_18%>"));//<%IDS_iPlanet_18%> return FALSE; } if(status_302 == 304) { index = strBuff.Find("304", 0); if(index >= 0) strBuff.Delete(0, index + 3); } index = strBuff.Find("304", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_19%>"));//<%IDS_iPlanet_19%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_304) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_20%>"));//<%IDS_iPlanet_20%> return FALSE; } if(status_304 == 401) { index = strBuff.Find("401", 0); if(index >= 0) strBuff.Delete(0, index + 3); } index = strBuff.Find("401", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_21%>"));//<%IDS_iPlanet_21%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_401) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_22%>"));//<%IDS_iPlanet_22%> return FALSE; } if(status_401 == 403) { index = strBuff.Find("403", 0); if(index >= 0) strBuff.Delete(0, index + 3); } index = strBuff.Find("403", 0); if(index < 0) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_23%>"));//<%IDS_iPlanet_23%> return FALSE; } strBuff.Delete(0, index); if(sscanf(strBuff, "%s %d%% %d", tmp, &percent, &status_403) != 3) { sprintf(szReturn, "error=%s", FuncGetStringFromIDS("<%IDS_iPlanet_24%>"));//<%IDS_iPlanet_24%> return FALSE; } sprintf(szReturn, "totalRequests=%d$badRequests=%d$status_2xx=%d$status_3xx=%d$status_4xx=%d$status_5xx=%d$status_xxx=%d$status_200=%d$status_302=%d$status_304=%d$status_401=%d$status_403=%d$", totalRequests, badRequests, status_2xx, status_3xx, status_4xx, status_5xx, status_xxx, status_200, status_302, status_304, status_401, status_403); return TRUE; }