📄 udpdlg.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 + -