Gprs 可以通过什么方式来连接1.OpenNetCF中的System.Net类2.WindowsApi
unsafe public static uint myRasDial(string EntryName,string  
  
UserName,string Password,out IntPtr RasConn) {  
  
/*  
  
EntryName ,UserName,Password - same as in RASDIALPARAMS structure (see  
  
MSDN)  
  
*/  
  
uint r=0;  
  
RasConn=IntPtr.Zero;  
  
byte[] bRASDIALPARAMS =new byte[1464];  
  
fixed (byte* pAddr = bRASDIALPARAMS) {  
  
byte* pCurrent = pAddr;  
  
Marshal.WriteInt32((IntPtr)pCurrent,bRASDIALPARAMS.Length);  
  
pCurrent+=4;  
  
foreach (byte b in Encoding.Unicode.GetBytes(EntryName)) {  
  
Marshal.WriteByte((IntPtr)pCurrent, b);  
  
pCurrent++;  
  
}  
  
pCurrent=pAddr+0x192;//0x192 - offset for RASDIALPARAMS.UserName  
  
foreach (byte b in Encoding.Unicode.GetBytes(UserName)) {  
  
Marshal.WriteByte((IntPtr)pCurrent, b);  
  
pCurrent++;  
  
}  
  
pCurrent=pAddr+0x394;//0x394 - offset for RASDIALPARAMS.Password  
  
foreach (byte b in Encoding.Unicode.GetBytes(Password)) {  
  
Marshal.WriteByte((IntPtr)pCurrent, b);  
  
pCurrent++;  
  
}  
  
r=RasDial(IntPtr.Zero,IntPtr.Zero,(IntPtr)pAddr,0,IntPtr.Zero,ref  
  
RasConn);  
  
}  
  
return r;  
  
}  
  
[DllImport("coredll.dll")]  
  
public static extern uint RasDial(IntPtr dialExtensions,IntPtr  
  
phoneBookPath,IntPtr rasDialParam,uint NotifierType,  
  
IntPtr notifier, ref IntPtr pRasConn);  
  
[DllImport("coredll.dll")]  
  
public static extern uint RasHangUp(IntPtr pRasConn);  
  
//------------------------------------------------------------------------  
  
Example of using myRasDial  
  
IntPtr rc; // connection handle  
  
if(myRasDial("BeelineGPRS","beeline","beeline",out rc)==0) { //success  
  
try {  
  
TcpClient client = new TcpClient("www.someaddress.com", someport);  
  
MessageBox.Show("OK");  
  
//..................................  
  
}  
  
catch(Exception ex) {  
  
MessageBox.Show(ex.Message);  
  
}  
  
RasHangUp(rc);  
  
}3.HttpWebRequest
4.不知道了。

解决方案 »

  1.   

    GPRS 可以直接使用 WebService ,直接设计 Webservice 用c# 调用!就可以使用 GPRS 但是 GPRS 必须使用 CMNET 接入点
      

  2.   

    仔细看了一下发的帖子 ,居然复制错了红色字体的部分是连接gprs的拨号还有连接的api也补上            [DllImport("cellcore.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.Winapi)]
                internal unsafe static extern int ConnMgrEstablishConnection(CONNMGR_CONNECTIONINFO pConnInfo, out IntPtr hConnection);            [DllImport("cellcore.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.Winapi)]
                internal unsafe static extern int ConnMgrReleaseConnection(IntPtr hConnection, int bCache);            [DllImport("cellcore.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.Winapi)]
                internal unsafe static extern int ConnMgrMapURL(string url, ref Guid guid, int* nIndex);            [DllImport("cellcore.dll", CharSet = CharSet.Unicode, SetLastError = true)]
                internal unsafe static extern int ConnMgrEstablishConnectionSync(CONNMGR_CONNECTIONINFO pConnInfo, out IntPtr hConn, uint timeout, ref uint status);            [DllImport("cellcore.dll", CharSet = CharSet.Unicode, SetLastError = true)]
                internal unsafe static extern int ConnMgrConnectionStatus(IntPtr hConnection, uint* status);wince的代码