Windows Mobile中如何建立GPRS连接以便Socket能正常通信
2010-08-22 12:42:00 来源:WEB开发网BOOL CConnectManager::WaitForConnected ( int nTimeoutSec, DWORD *pdwStatus/*=NULL*/ )
{
DWORD dwStartTime = GetTickCount ();
BOOL bRet = FALSE;
while ( GetTickCount ()-dwStartTime < (DWORD)nTimeoutSec * 1000 )
{
if ( m_hConnection )
{
DWORD dwStatus = 0;
HRESULT hr = ConnMgrConnectionStatus ( m_hConnection, &dwStatus );
if ( pdwStatus ) *pdwStatus = dwStatus;
if ( SUCCEEDED(hr) )
{
if ( dwStatus == CONNMGR_STATUS_CONNECTED )
{
bRet = TRUE;
break;
}
}
}
Sleep ( 100 );
}
return bRet;
}
至此,我们的连接启用工作已经做完了,我们可以用我们熟悉的 socket 来编写网络通信程序了。下面是一个测试 socket 测试网络连接是否能正常建立的例子:
SetWaitCursor ();
CSocket sock;
sock.Create ();
if ( sock.Connect ( _T("www.baidu.com"), 80 ) )
{
RestoreCursor ();
AfxMessageBox ( _T("Connect to www.baidu.com successfully"), MB_ICONINFORMATION );
}
else
{
RestoreCursor ();
AfxMessageBox ( _T("Connect to www.baidu.com failed") );
}
GPRSDemo.exe 的使用
程序启动以后出现如下界面:
连接可用性 ? 检测连接管理器是否可用
映射URL ? 是让系统自动寻找一个最好的连接
枚举网络标识符 ? 将当前系统中所有可用的连接都会被枚举出来
连接网络 ? 将枚举出来的连接选中的那个连接进行连接启用操作。
连接状态 ? 表示可以获取到当前连接的状态;
连接到公网测试 ? 利用 www.baidu.com 来测试连接是否已经正常启动。
操作步骤:
可以直接按“枚举网络标识符”,程序将所有当前在用的网络枚举出来并添加到 ListBox 控件中;
连接网络。选择一个连接(例如:Internet),按“连接网络”按钮,当提示 Connection net successfully 表示连接已经正常启用了。
按“连接到公网测试”按钮,软件自动和 www.baidu.com 进行连接测试。
更多精彩
赞助商链接