📄 dlgchgserver.cpp
字号:
// DlgChgServer.cpp : implementation file
//
#include "stdafx.h"
#include "RegionComm.h"
#include "RegionSocket.h"
#include "DlgChgServer.h"
#include "constant.h"
#include "RegionCommDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DlgChgServer dialog
DlgChgServer::DlgChgServer(CWnd* pParent /*=NULL*/)
: CDialog(DlgChgServer::IDD, pParent)
{
//{{AFX_DATA_INIT(DlgChgServer)
m_iPortNo = 0;
m_sServerName = _T("");
//}}AFX_DATA_INIT
}
void DlgChgServer::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DlgChgServer)
DDX_Control(pDX, IDC_IPADDRESS1, m_IP_C);
DDX_Text(pDX, IDC_PORTNO, m_iPortNo);
DDV_MinMaxUInt(pDX, m_iPortNo, 1024, 9999);
DDX_Text(pDX, IDC_SERVERNAME, m_sServerName);
DDV_MaxChars(pDX, m_sServerName, 50);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DlgChgServer, CDialog)
//{{AFX_MSG_MAP(DlgChgServer)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DlgChgServer message handlers
BOOL DlgChgServer::OnInitDialog()
{
CDialog::OnInitDialog();
m_iPortNo = AfxGetApp()->GetProfileInt(CenterServerConfigName,_T("ServerSocketPort"),0);
m_sServerName=AfxGetApp()->GetProfileString(CenterServerConfigName,_T("ServerMachineName"),"");
m_sIPAddr = AfxGetApp()->GetProfileString(CenterServerConfigName,_T("ServerIPAddress"),"");
long lIpAddr = inet_addr((LPCTSTR)m_sIPAddr);
long lIpAddr2; //由于标准的inet_addr函数得到IP串表示和常规的相反,所以要颠倒字节
unsigned char *p1,*p2;
p1=(unsigned char*)(&lIpAddr);
p2=(unsigned char*)(&lIpAddr2);
for(char i=0;i<4;i++)
p2[i]=p1[3-i];
if(lIpAddr!=INADDR_NONE)
m_IP_C.SetAddress(lIpAddr2);
else
m_sIPAddr="";
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DlgChgServer::OnOK()
{
CRegionSocket * pSocket;
int ret = m_IP_C.GetAddress(m_iIP);
unsigned char *p1,*p2;
long lIpAddr2;
if(ret<4)
m_iIP = 0;
UpdateData(true);
m_sServerName.TrimLeft();
m_sServerName.TrimRight();
struct in_addr sAddr;
if(m_iIP)
{
p1=(unsigned char*)(&m_iIP);
p2=(unsigned char*)(&lIpAddr2);
for(char i=0;i<4;i++)
p2[i]=p1[3-i];
sAddr.S_un.S_addr=lIpAddr2;
m_sIPAddr=inet_ntoa(sAddr);
}
else
m_sIPAddr="";
if(m_iIP == 0 && m_sServerName =="")
{
::MessageBox(NULL,_T("请输入中心服务器名或IP地址"),_T("错误"),MB_OK);
return;
}
if(m_iPortNo == 0 )
{
::MessageBox(NULL,_T("请输入中心服务器端口号"),_T("错误"),MB_OK);
return;
}
AfxGetApp()->WriteProfileString(CenterServerConfigName,_T("ServerMachineName"),m_sServerName);
AfxGetApp()->WriteProfileString(CenterServerConfigName,_T("ServerIPAddress"),m_sIPAddr);
AfxGetApp()->WriteProfileInt(CenterServerConfigName,_T("ServerSocketPort"),m_iPortNo);
CRegionCommDoc * pDoc = (CRegionCommDoc *)m_pView->GetDocument();
pSocket = pDoc->m_pCommunication->m_pServerSocket;
pSocket->UpdateProperty(m_sServerName,m_iPortNo,m_sIPAddr);
m_pView->SetListCtrlFormat(m_pView->m_itemOld.lParam);
CDialog::OnOK();
}
void DlgChgServer::SetOwner(CRegionCommView *pView)
{
m_pView=pView;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -