《基于wince的网络音视频通信(简单易明版)》中开发板的ip问题
[复制链接]
源程序来自hellogv的《基于wince的网络音视频通信(简单易明版)》。我用的是wifi通信方式,2440与pc机通信。路由器给pc机分配的ip是192.168.0.100;给arm板分配的ip是192.168.0.101;为什么在2440上运行该程序的时候,local ip显示的是192.168.0.234???应该显示192.168.0.101才对啊!!
下面是对话框的初始化代码,local ip=192.168.0.234 就是由下面代码产生的。就是不知道怎么会取得192.168.0.234这个ip????
BOOL CtalkDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//设置顶层窗口
/////////////////////////////////////////////////////////////////////////////////////
//主要看下面这些代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//--------------取得本地IP
BYTE *p;
char temp[100];
struct hostent *hp;
CString tmp_remote_ip;
if(gethostname(temp, sizeof(temp))== 0)
{
if((hp =gethostbyname(temp))!=0)
{
p =(BYTE *)hp->h_addr;// <<<------应该就是这一句获得了local ip
tmp_remote_ip.Format(L"%d.%d.%d.%d",p[0], p[1], p[2], p[3]);
GetDlgItem(IDC_LOCAL_IP)->SetWindowTextW(tmp_remote_ip);
//m_LocalIP.SetWindowTextW(tmp_remote_ip);//设置控件显示本地IP地址
//-----------取得本地开发端口
local_port=p[3]*p[3];//端口为IP尾段的平方
CString tmp_port;
tmp_port.Format(L"%d",local_port);
GetDlgItem(IDC_LOCAL_PORT)->SetWindowTextW(tmp_port);
}
}
return TRUE; // return TRUE unless you set the focus to a control
}