//------------------------------------- 接受消息包---------------- bool Connection::recvMsg() { ofstream ofile; ofile.open("/home/peng/desktop/log.txt"); bzero(rcvbuffer,buffer_size); if ((recv_size = recv(conn_sock, rcvbuffer, buffer_size, 0)) == -1) { perror("receive data"); exit(1); } memmove(buffer+offset,rcvbuffer,recv_size); for (int i=0;i<recv_size;i++) { if (rcvbuffer[i]==0) { rcvbuffer[i]=0x20; } //ofile1<<rcvbuffer[i]; } string stemp(rcvbuffer); ofile1 << stemp << endl <<endl<<endl; ofile<<stemp<<endl; ofile.close(); return true; }
void ThreadJoueurs::RXInfosFmJoueurs(QByteArray baRXInfos) { //decode rx byte array QString stemp(baRXInfos); QStringList sltemp = stemp.split('.'); int ttemp[3]; for (int i=0;i<sltemp.size()-1;i++) ttemp[i]=sltemp.at(i).toInt(); memcpy(m_rxInfos,ttemp,sizeof(ttemp)); emit siInfosToServeur(m_rxInfos,3); }
void readFile(const char* fileName, std::list<std::string>& lines, std::vector< std::list<std::string>::const_iterator >& pageHdrs, const int maxWidth, const int maxHeight, int* nlines) { FILE *fp = NULL; char *buf = new char[ 4096 ]; int nbytes = 0, cnrt_lines = 0; lines.clear(); pageHdrs.clear(); if ( NULL == (fp = fopen( fileName, "r" )) ) { ERR_MSG( "Open File %s failed.\n", fileName ); exit(-1); } while( 0 < (nbytes = fread( (void*) buf, sizeof(char), 4096, fp ))) { int K, ptr = 0; for ( K = 0; K < nbytes; ++K ) { if ( '\n' == buf[K] || maxWidth == ( K - ptr + 1 ) ) { std::string stemp( &(buf[ptr]), (K - ptr + 1) ); lines.push_back( stemp ); if ( 0 == ( cnrt_lines % maxHeight ) ) { std::list<std::string>::const_iterator citer = lines.end(); --citer; pageHdrs.push_back( citer ); } cnrt_lines ++; ptr = K + 1; } } } if ( NULL != nlines ) *nlines = cnrt_lines; delete [] buf; }
std::string jstring2str(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsstring = env->FindClass("java/lang/String"); jstring strencode = env->NewStringUTF("GB2312"); jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B"); jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr,mid,strencode); jsize alen = env->GetArrayLength(barr); jbyte* ba = env->GetByteArrayElements(barr,JNI_FALSE); if(alen > 0) { rtn = (char*)malloc(alen+1); memcpy(rtn,ba,alen); rtn[alen]=0; } env->ReleaseByteArrayElements(barr,ba,0); std::string stemp(rtn); free(rtn); return stemp; }
string jstringTostring(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsstring = env->FindClass("java/lang/String"); //jstring strencode = env->NewStringUTF("GB2312"); jstring strencode = (env)->NewStringUTF("UTF8"); jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B"); jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr,mid,strencode); jsize alen = env->GetArrayLength(barr); jbyte* ba = env->GetByteArrayElements(barr,JNI_FALSE); if(alen>0) { rtn = (char*)malloc(alen+1); //new char[alen+1]; memcpy(rtn,ba,alen); rtn[alen]=0; DEBUGINFO("in %s: translate to %s\n", __func__, rtn); } env->ReleaseByteArrayElements(barr,ba,0); string stemp(rtn); free(rtn); return stemp; }
/* reverse a string in place, return str */ static void reverse(string &str) { string stemp(str); str.clear(); for(int i=stemp.size()-1;i>=0;i--) str.push_back(stemp[i]); }