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

📄 udpdlg.cpp

📁 MDF监控源码2
💻 CPP
字号:
// UdpDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "MDF.h"
#include "UdpDlg.h"
#include ".\udpdlg.h"
#include "protocolfun.h"

// CUdpDlg 对话框

IMPLEMENT_DYNAMIC(CUdpDlg, CDialog)
//##ModelId=4652869D00DB
CUdpDlg::CUdpDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUdpDlg::IDD, pParent)
{
	sockServer = new CSocketComm();
}

//##ModelId=4652869D00EA
CUdpDlg::~CUdpDlg()
{
}

//##ModelId=4652869D00EC
void CUdpDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_CHKSEND, m_chkAuto);
}


BEGIN_MESSAGE_MAP(CUdpDlg, CDialog)
	ON_MESSAGE(WM_SOCK_RXSTRING,onSockReadString)

	ON_BN_CLICKED(IDC_BTNSOCK, OnBnClickedBtnsock)
	ON_BN_CLICKED(IDC_BTNTEST, OnBnClickedBtntest)
	ON_BN_CLICKED(IDC_BTNSEND, OnBnClickedBtnsend)
	ON_BN_CLICKED(IDC_CHKSOURCE, OnBnClickedChksource)
	ON_BN_CLICKED(IDC_BTNCLEAR, OnBnClickedBtnclear)
	//ON_BN_CLICKED(IDC_CHKSHOW2, OnBnClickedChkshow2)
	ON_BN_CLICKED(IDC_CHKSEND, OnBnClickedChksend)
	ON_BN_CLICKED(IDC_CHKSHOW, OnBnClickedChkshow)
END_MESSAGE_MAP()


// CUdpDlg 消息处理程序
// Socket接收消息
//##ModelId=4652869D00FC
LRESULT CUdpDlg::onSockReadString(WPARAM wParam, LPARAM lParam)
{
	CString sBuf;
	sMsgBody  *msgBody;
	//msgBody = new sMsgBody();
	msgBody = (sMsgBody *)wParam;
	CListBox *m_ListBox = (CListBox *)GetDlgItem(IDC_LSTINFO);
	sBuf = CString(msgBody->lpBuf,msgBody->iLen);


	//是否显示接收到的资料
	if (((CButton*)GetDlgItem(IDC_CHKSHOW))->GetCheck() == BST_CHECKED)
	{
		sBuf.Format("From:%s:%d %s" , msgBody->sIP , msgBody->iPort , msgBody->lpBuf);
		
		m_ListBox->AddString(sBuf);

	}
	
	sBuf.Format("接收数量:%d",m_ListBox->GetCount());
	SetDlgItemText(IDC_STARECEIVE,sBuf);


	return LRESULT();
}
//##ModelId=4652869D0140
void CUdpDlg::OnBnClickedBtnsock()
{
		//blStop = !blStop;
	CString m_MonitorPort;
	GetDlgItemText(IDC_EDTPORTSERVER,m_MonitorPort);
	int iport = atoi((char*)m_MonitorPort.GetBuffer());
	sockServer = new CSocketComm();
	sockServer->SetMessageWindow(this);
	sockServer->StartMonitoring(iport);

}

//##ModelId=4652869D0149
void CUdpDlg::OnBnClickedBtntest()
{
	CString sBuf;	
	GetDlgItemText(IDC_EDTINFO,sBuf);
	char *cBuf = (char*)sBuf.GetBuffer();
	//sockServer->SendInfo(sBuf);

}


//##ModelId=4652869D014B
void CUdpDlg::OnBnClickedBtnsend()
{
	CString sBuf,sIP,sPort;	
	int iPort;
	GetDlgItemText(IDC_EDTINFO,sBuf);
	GetDlgItemText(IDC_EDTIP,sIP);
	GetDlgItemText(IDC_EDTPORT,sPort);
	iPort = atoi(sPort.GetBuffer());
	char *cBuf = (char*)sBuf.GetBuffer();
	if (sBuf.GetLength()>0)
		sockServer->SendTo(sBuf,sIP,iPort);

	
}


//##ModelId=4652869D014D
void CUdpDlg::OnBnClickedChksource()
{
	
}

//##ModelId=4652869D0158
void CUdpDlg::OnBnClickedBtnclear()
{
	CListBox *m_ListBox = (CListBox *)GetDlgItem(IDC_LSTINFO);
	m_ListBox->ResetContent();
}


//##ModelId=4652869D013D
UINT CUdpDlg::Asking(LPVOID lpWnd)
{
	CUdpDlg *dlg = (CUdpDlg *)lpWnd;

	int iRate = dlg->iInterval;
	if (iRate == 0)
		iRate = 500;
	for(;;)
	{
		if (dlg->m_chkAuto.GetCheck() == BST_UNCHECKED )
			return 0;
		else
		{
			dlg->OnBnClickedBtnsend(); 
			Sleep(iRate);
		}
	}

}




//##ModelId=4652869D016C
void CUdpDlg::OnBnClickedChksend()
{
	CString sValue;
	UpdateData();

	GetDlgItem(IDC_EDTRATE)->GetWindowText(sValue);
	if (sValue.GetLength() >0)
	{
		iInterval = atoi(sValue.GetBuffer());
		pThread = AfxBeginThread(Asking,(LPVOID)this);
	}
	else
		iInterval = 0;
}

//##ModelId=4652869D017C
void CUdpDlg::OnBnClickedChkshow()
{
	// TODO: 在此添加控件通知处理程序代码
	
	


}

⌨️ 快捷键说明

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