void CSockDemoDlg::OnOK()
{
UpdateData();
if(m_Send.GetLength()>0)
{
sock.SendTo(m_Send,m_Send.GetLength(),m_Port,m_IP);
};
if(m_Frequency>0)
{
m_nTimer=SetTimer(1,1000/m_Frequency,0);
m_nCurTime=GetTickCount();
m_OK.EnableWindow(false);
};
// CDialog::OnOK();
}
void CSockDemoDlg::OnCancel()
{
sock.Close();
CDialog::OnCancel();
}
void CSockDemoDlg::OnCreate()
{
UpdateData();
sock.CreateMySocket(this,m_LPort,SOCK_DGRAM);
m_ctlLPort.EnableWindow(false);
m_ctlIP.EnableWindow(true);
m_ctlPort.EnableWindow(true);
m_ctlSend.EnableWindow(true);
m_OK.EnableWindow(true);
m_Create.EnableWindow(false);
m_ctlFrequency.EnableWindow(true);
m_ctlElapse.EnableWindow(true);
m_Reset.EnableWindow(true);
m_ctlReceive.SetWindowText("");
}
void CSockDemoDlg::SetReceiveMsg(CString msg)
{
m_ctlReceive.SetWindowText(msg);
}
int tmpi=0;
void CSockDemoDlg::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1)
{
tmpi++;
if(tmpi%2==0)
{
m_Send.Format("000%dabcdefgh%5d",tmpi%3,tmpi);
}
else
{
m_Send.Format("000%dhgfedcba%5d",tmpi%3,tmpi);
};
m_Send.Replace(" ","0");
if(m_Send.GetLength()>0)
{
sock.SendTo(m_Send,m_Send.GetLength(),m_Port,m_IP);
};
if((GetTickCount()-m_nCurTime>m_Elapse*1000)&&(m_Elapse>0))
{
KillTimer(m_nTimer);
m_OK.EnableWindow(true);
}
else if(GetTickCount()-m_nCurTime>5*60*1000)//max 5 minutes
{
KillTimer(m_nTimer);
m_OK.EnableWindow(true);
};
};
CDialog::OnTimer(nIDEvent);
}
void CSockDemoDlg::OnReset()
{
sock.Close();
KillTimer(m_nTimer);
m_ctlLPort.EnableWindow(true);
m_ctlIP.EnableWindow(false);
m_ctlPort.EnableWindow(false);
m_ctlSend.EnableWindow(false);
m_OK.EnableWindow(false);
m_Create.EnableWindow(true);
m_ctlFrequency.EnableWindow(false);
m_ctlElapse.EnableWindow(false);
m_Reset.EnableWindow(false);
m_ctlReceive.SetWindowText("");
}