📄 ftpserver.cpp
字号:
#include "Public.h"
#include "Tools.h"
#include "FtpServer.h"
int main(){
CFtpServer ftpSvr;
ftpSvr.Start();
return 0;
}
void CFtpServer::SignChildExit(int iSignNo)
{
pid_t pid;
int iExitCode;
pid=wait(&iExitCode);
TRACE("CCtrlSocket:%d exited\n",pid);
}
CFtpServer::CFtpServer()
{
}
CFtpServer::~CFtpServer()
{
}
int CFtpServer::Start()
{
char szBuf[32];
CCtrlSocket sockCtrl;
//注册僵尸处理程序
signal(SIGCHLD,SignChildExit);
if(m_sockSvr.Create()!=0){
perror("create server socket fail.\n");
return -1;
}
ReadConfig("ListenPort","2121",szBuf,
sizeof(szBuf),"./ftpsvr.cfg");
if(m_sockSvr.Listen(atoi(szBuf))!=0){
printf("Listen port :%d failed!\n",atoi(szBuf));
return -2;
}
ReadConfig("Timeout","90000",szBuf,
sizeof(szBuf),"./ftpsvr.cfg");
sockCtrl.m_iTimeout=atoi(szBuf);
while(true){
m_sockSvr.Accept(&sockCtrl);
if(fork()==0){//子进程
m_sockSvr.Close();//在子进程里面不需要m_sockSvr
sockCtrl.Start();
break;
}else{
sockCtrl.Close();//父进程不再引用sockCtrl里的套接字对象
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -