GPRS开发系列文章之进阶篇
tus = 0;
hResult = ConnMgrEstablishConnectionSync(ConnInfo, m_hConnection, 10*1000, dwStatus );
if(FAILED(hResult))
{
m_hConnection = NULL;
}
else bRet = TRUE;
}
return bRet;
}
检测连接状态
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;
}
最后要记得释放连接
void CConnectManager::ReleaseConnection ()
{
if ( m_hConnection )
{
ConnMgrReleaseConnection(m_hConnection, FALSE);
m_hConnection = NULL;
}
}
2. 客户端与服务器端进行socket通信APIsocket通信相关开发API在Winsock2.h.文件中定义,因为SOCKET通信不是本文的重点但是又是必须要涉及的
a) WSAStartup函数。在应用程序进行Windows Sockets通信时,必须首先调用此函数来指定应用程序要加载的Windows Scoket版本等信息,应用程序结束前我们应该调用WSACleanup去释放掉所用的系统资源
b) Connect 函数。此函数用来建立连接
c) Select 函数。建立连接后,用来侦听是否有数据传输
d) Send函数。用于给服务器发送消息
3. 服务器端与客户端进行socket通信
服务器端主要涉及到的库为:
System.Net,System.Net.Sockets,System.IO;
System.Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口,System.Net.Sockets 命名空间为需要严密控制网络访问的开发人员提供了Windows Sockets (Winsock) 接口的托管实现。
System.IO 命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。
需要了解的技术有:多线程,事件与委托,SOCKET通信等
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)