Windows Mobile Gprs连接与数据传输

此模块分两部分完成,传输数据用socket ,要使用socket在ppc上进行数据传输,就要谁让ppc自动连接gprs 。其中套接字和gprs链接分别进行说明。

 

一 ,应用程序在进行其它所需的Windows Sockets API调用需要进行一次成功的WSAStartup()调用,然后就是套接字编程。分为服务器端和客户端。

 

服务器:

先建立套接字

SOCKET WSASocket(

  int af,

  int type,

  int protocol,

  LPWSAPROTOCOL_INFO lpProtocolInfo,

  GROUP g,

  DWORD dwFlags

);//具体参数参见设置MSDN

然后初始化一个SOCKADDR_IN结构体,然后用bind()将本地ip与端口与socket进行绑定,之后用listen()监听该套接字,如果有连接请求则使用accept()建立连接,然后用send()和recv()接受和发送数据,最后关闭套接字。

客户端:

客户端与服务器端不同的是不需要进行socket绑定,不需要监听是否有连接请求,也不用accept()建立连接,而是用connect()发起连接请求。

 

进行调试时必须先运行服务器端,再运行客户端。

 

二,首先我们利用ConnMgrApiReadyEvent()函数来确认是否有可用连接,利用此函数来我们可以返回一个连接事件的句柄 ,注意在的得到句柄后要记得及时释放,

然后用WaitForSingleObject()函数的返回值可以判断在指定时间内是否找到可用连接,如果返回值WAIT_OBJECT_0说明有可用连接,然后通过ConnMgrMapURL ()函数来选则一个最好的链接,函数原型为:

HRESULT WINAPI ConnMgrMapURL(
  LPCTSTR pwszURL,
  GUID * pguid,
  DWORD * pdwIndex
);

ConnMgrMapURL()是通过给定的pwszURL地址,让系统自己选择一条最适合的网络连接来访问该URL,如果手机可以通过GPRS/Activesync/Wifi/3G等多种方式访问某个网络资源,用这个API你就不用担心到底该用什么方式联网,系统会自己给你选一条最适合的网络连接。第二个参数GUID * pguid是根据第一个参数pwszURL进行赋值,即你访问的URL是http还是wap,每种都有一个全局唯一标识。然后通过ConnMgrEstablishConnectionSync()进行连接,此函数要传递一个CONNMGR_CONNECTIONINFO结构体,用于保存客户端的连接信息。然后就可以进行socket通信了,就是第一部分所说的。最后用ConnMgrReleaseConnection()释放连接。

 

提示:cmwap所获得的地址是经过分组的,我抓几次包都是10开头的ip,输入内网,外网的服务器找不到这样的ip,cmwap是未分组的,抓包显示的就是公网ip.

 

PS:较久以前做的关于windows mobile的项目

时间: 2024-09-08 11:03:12

Windows Mobile Gprs连接与数据传输的相关文章

Windows Mobile中如何建立GPRS连接以便Socket能正常通信

最近编写一个医疗项目的程序,需要用 Windows Mobile 来做通信处理,需要将手机端的数据通过GPRS传送至公网上的一个服务器上.数据传输我采用的是socket,用数据线+ActiveSync调试通过,数据传输正常,在准备将软件提交给质检部门的时候,用真正的GPRS来做通信测试时,问题出来了,连接始终建立不了,但用手机的IE浏览器却能正常打开网页,而且奇怪的是只要用IE浏览器成功访问过一次网页,我的 socket 就能正常进行数据通信,看来传说中的GPRS常连接被我误解了. 手机开通GP

在Windows Mobile Emulator建立网络连接

因为想使用Windows Mobile Emulator进行网络通信程序的测试,所以找方法配置Emulator的网络连接.在网上找了一些文章,很多都说需要安装Virtual PC 2007. 例如下面的文章Enable Network Connection Windows Mobile 6 Emulator 如果需要 Virtual PC 2007 可以在这里下载 http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-

艾伟:在Windows Mobile Emulator建立网络连接

因为想使用Windows Mobile Emulator进行网络通信程序的测试,所以找方法配置Emulator的网络连接.在网上找了一些文章,很多都说需要安装Virtual PC 2007. 例如下面的文章Enable Network Connection Windows Mobile 6 Emulator 如果需要 Virtual PC 2007 可以在这里下载 http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-

VS连接Windows Mobile模拟器

原文:http://www.cnblogs.com/xjimmyshcn/archive/2011/07/19/2111087.html   一.WinCE 模拟器通过ActiveSync 6.1(即Windows Mobile设备中心)连接PC 1.启动WinCE模拟器 命令行:  start .\DeviceEmulator.exe WINCE镜像\Wince5.bin /memsize 256 /video 480x272x16 /sharedfolder .\模拟卡 2.设置Active

Windows Mobile系统程序与控制面板命令参数

Windows Mobile的系统程序与控制面板的各项命令参数列表如下:WINDOWS目录下的程序(中英文对照表) backlight.exe 电源设置 btftpclient.exe 蓝牙资源管理器 bubblebreaker.exe 连球游戏 calc.exe 计算器 calender.exe 日历 camera.exe 相机 clearstorage.exe 恢复出厂设置 clock.exe 时钟 commManager.exe 通讯管理 commuRec.exe 通讯录 cprog.ex

Windows Mobile开发者新手上路指南

Part 1.开发环境的搭建 软件安装顺序: 1.安装Microsoft ActiveSync 4.0以上版本 2.安装VS2005 开发Pocket PC需安装Windows Mobile 5.0 Pocket PC SDK 开发Smartphone需安装Windows Mobile 5.0 Smartphone SDK Mobile 5.0环境配置: 1.模拟器与Microsoft ActiveSync同步: A.启动VS2005,在Tools->Device Emulator Manage

Windows Mobile 6开发环境的配置过程

需要的文件列表: 1.Visual Studio 2005 Professional及更高的版本(Visual Studio 2005 Express目前并不支持智能设备开发)(推荐用迅雷或者电骡下). 2.Visual Studio 2005 的补丁SP1 (推荐用迅雷或者电骡下) 3. ActiveSync版本4.5 (http://download.microsoft.com/download/7/e/c/7ecbd388-7fb5-4e3e-b57f-12eaf7eb6136/setup

在PC上显示和操作Windows Mobile

简介 在Windows Mobile和Wince开发中,直接在PC上操控相关设备是必不可少的步骤.本文讲述在PC上显示和操作Windows Mobile的方法,包括使用ActiveSync Remote Display和MyMobiler两种方法. 安装ActiveSync 不管那种方法,安装ActiveSync是必须的,请到下面链接进行下载安装ActiveSync 4.5. ActiveSync Remote Display ActiveSync Remote Display是MS提供的远程显

艾伟_转载:在PC上显示和操作Windows Mobile

简介 在Windows Mobile和Wince开发中,直接在PC上操控相关设备是必不可少的步骤.本文讲述在PC上显示和操作Windows Mobile的方法,包括使用ActiveSync Remote Display和MyMobiler两种方法. 安装ActiveSync 不管那种方法,安装ActiveSync是必须的,请到下面链接进行下载安装ActiveSync 4.5. ActiveSync Remote Display ActiveSync Remote Display是MS提供的远程显