- 论坛徽章:
- 0
|
各位大虾,如果想在下面的代码里面插入发送心跳包的代码,要在哪里插入,不胜感激啊!!!!最好能够给出代码(参数格式可以忽略)
signal(SIGINT,SIG_IGN);
signal(SIGTERM,sig_stop);
signal(SIGCLD,SIG_IGN);
{
if ( (pid = fork()) < 0)
return -1;
else if (pid != 0)
exit(0);
setsid();
}
tlog(__FILE__,__LINE__,"Server[kmsf_zf] start");
FD_ZERO(&iAllFds);
FD_SET(iSock,&iAllFds);
tv.tv_sec=1L;
tv.tv_usec=0L;
while ( !g_iStop )
{
rfds=iAllFds;
FD_SET(iSock,&rfds);
if ( (iRetCode=select(iSock+1,&rfds,NULL,NULL,&tv)) < 0 )
{
if ( errno==EINTR || errno==EPROTO || errno==ECONNABORTED )
continue;
else
{
tlog(__FILE__,__LINE__,"Select fail: %d",errno);
return -1;
}
}
if ( iRetCode==0 )
continue;
if ( FD_ISSET(iSock,&rfds) )
{
iPeerLen=sizeof(struct sockaddr_in);
iAcceptSock=accept(iSock,(struct sockaddr *)&tPeer,&iPeerLen);
if ( iAcceptSock<0 )
{
tlog(__FILE__,__LINE__,"Accept fail: %d",errno);
close(iAcceptSock);
continue;
}
if ( fork()==0 )
{
close(iSock);
//报文转发处理
Transmit(iAcceptSock);
close(iAcceptSock);
exit (0);
}
close(iAcceptSock);
}
}
tlog(__FILE__,__LINE__,"Server[kmsf_zf] stop");
return 0;
} |
|