2016-01-05 19:46:22|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, 网络通信|来源:唯设编程网
int CFTP::recv_buf(char* recv_buf,int buf_length) { memset(recv_buf,'',buf_length); int len = recv(m_sockctrl,recv_buf,buf_length,0); if(-1 == len){ return WSAGetLastError(); } //接收残余数据 char tmp[1024] = {0}; while(len != SOCKET_ERROR && len != 0){ len = recv(m_sockctrl,tmp,sizeof(tmp),0); if(len != SOCKET_ERROR && len != 0){ strcat(recv_buf,tmp); memset(tmp,0,sizeof(tmp)); } } //应该保存ftp运行日志 save_log(recv_buf, m_pLogFile); return 0; }
通过socket接收数据使用的函数是recv,使用while循环接收,知道全部接收完成,最后调用了save_log保存日志信息。
void CFTP::save_log( const char* str_log, FILE* pLogFile ) { //格式化当前系统时间 time_t nowtime = time(NULL); //获取当前时间 struct tm *local = localtime(&nowtime); //获取当前系统时间 char tmp[2048] = {0}; sprintf_s(tmp,"【%d-%d-%d %d:%d:%d】 %s",local->tm_year+1900, local->tm_mon+1, local->tm_mday, local->tm_hour, local->tm_min, local->tm_sec, str_log); //连接字符串 //strLog fwrite(tmp,strlen(tmp),1,pLogFile); }
通过time函数获取系统时间,文件使用fwrite将内容写入文件中。