⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sock.c

📁 linux下的ftp服务端,支持多种ftp版本
💻 C
字号:
#include "sock.h"




int elog(char *msg,char *fname,int len)
{
    time_t curTime;
    struct tm *tblock;
    char buf[200];
    FILE *fp;
    char *pathname;
    int slen;
    char str_tm[22];
    pathname=(fname!=NULL)?fname:"../log/errorlog.log";
    slen=(len)?len:strlen(msg);
    curTime=time(NULL);
    tblock=localtime(&curTime);
    strftime(str_tm,sizeof("[2002-01-01 00:00:00]"),"[%Y-%m-%d %H:%M:%S]",tblock);

    if ((fp=fopen(pathname,"a"))!=NULL)
    {
        
        fwrite(str_tm,sizeof(char),strlen(str_tm),fp);
		fwrite(" ",sizeof(char),strlen(" "),fp);
        fwrite(msg,sizeof(char),slen,fp);
        fwrite("\n",sizeof(char),strlen("\n"),fp);
        fclose(fp);
        return 0;
    }
    return -1;
}












int CreateSocket(int domain, int type, int protocol)
{
	int socketfd;
	socketfd=socket(domain,type,protocol);
	/*if(socketfd==-1)
		elog("Create socket faild","error.log",0);
		
	
	else
		elog("Create socket succfully","error.log",0);*/

	return socketfd;

}



int Listen(int s, int backlog)
{
	int flag;
	flag=listen(s,backlog);
	/*if(flag==-1)
		elog("listen faild","error.log",0);
	else
		elog("listen succfully","error.log",0);*/
	
	return flag;

}



int Connect(int  sockfd,  const  struct sockaddr *serv_addr, socklen_t addrlen)
{
	int flag;
	flag=connect(sockfd,serv_addr,addrlen);
	/*if(flag==-1)
		elog("connect faild","error.log",0);
	else
		elog("connect succfully","error.log",0);*/

	return flag;

}



int Accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen)
{
	
	int socketfd;
	socketfd=accept(sockfd,cliaddr,addrlen);
	
	/*if(socketfd==-1)
		elog("accept faild","error.log",0);
	else
		elog("accept succfully","error.log",0);*/

	return socketfd;



}



int Bind(int sockfd,const struct sockaddr *myaddr,socklen_t addrlen)
{
	int flag;
	int opt = 1;
	int opt_len = sizeof(opt);
	setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &opt, opt_len);
	flag=bind(sockfd,myaddr,addrlen);
	/*if(flag==-1)
		elog("bind faild","error.log",0);
	else
		elog("bind succfully","error.log",0);*/

	return flag;
}


int Write(int sockfd,char *buffer,unsigned int count)
{
	write(sockfd,buffer,count);
}

void Read(int sockfd,char *buffer,unsigned int count)
{
	
	read(sockfd,buffer,count);

}


void Close(int sockfd)
{
	close(sockfd);
}


int Send(int datafd, const void *msg, size_t len, int flags)
{
	int sendsize;
	sendsize=send(datafd,msg,len,flags);
	/*if(sendsize<0)
	{
		
		elog("send falid","error.log",0);
	}
	else
	{
		
		elog("send succfully","error.log",0);
	}*/
	return sendsize;
}


int Recv(int s, void *buf, size_t len, int flags)
{
	int recvsize;
	recvsize=recv(s,buf,len,flags);
	return recvsize;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -