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

📄 dlgchgserver.cpp

📁 gps对时
💻 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 + -