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将内容写入文件中。