Windows Mobile Gprs连接与数据传输

此模块分两部分完成,传输数据用socket ,要使用socketppc上进行数据传输,就要谁让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的项目


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言变量的类型和存储位置

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 1. C语言变量主要分为全局变量、静态全局变量、局部变量、静态局部变量和寄存器变量。…

nginx+tomcat负载均衡

最近练习nginxtomcat负载均衡。根据一些资料整理了大体思路,最终实现了1个nginx2个tomcat负载均衡。 安装JDK 1》进入安装目录,给所有用户添加可执行的权限 #chmod x jdk-7u67-linux-i586.rpm //不知这步有没有必要 2》安装JDK 输入命令#rpm –ivh jdk-7…

linux 最强shell,最牛B 的 Linux Shell 命令(一)

引言Shell作为Unix系操作系统当中最有魅力且不可或缺的组件,经过数十载的洗礼不仅没有被淘汰,而且愈加变得成熟稳健,究其原因,大概因为它是个非常稳固的粘合剂,能够把大量功能强大的组件任意配搭,总能很好很…

更改Docker默认的images存储位置

Docker的镜像以及一些数据都是在/var/lib/docker目录下,它占用的是Linux的系统分区,也就是下面的/dev/vda1,当有多个镜像时,/dev/vda1的空间可能不足,我们可以把docker的数据挂载到数据盘,例如:/dev/vdb目录…

malloc/free和new/delete的区别

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** malloc与free是C/C语言的标准库函数,new/delete是C的运算符。它们都可用于…

HDU 1217 Arbitrage (Floyd + SPFA判环)

题目链接:HDU 1217 Arbitrage 简单的货币转换问题,给定多种货币,以及货币之间的汇率,问能否通过货币的转换实现收益。 例如: 1 US Dollar buys 0.5 British pound, 1 British pound buys 10.0 French francs, and 1 F…

linux libbz2.so.1,libbz2.so.1.0 = not found 试过了链接和设置环境变量

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼LD_LIBRARY_PATH. ldd steamui.solinux-gate.so.1 > (0xf7700000)libtier0_s.so > ./libtier0_s.so (0xf648e000)libv8.so > ./libv8.so (0xf5ba3000)libvideo.so > ./libvideo.so (0xf57e2000)libvstdlib_s.so > .…

对互联网中常见地图的坐标系探讨

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.背景 目前项目中使用百度地图、高德地图、谷歌中国地图、天地图的需求越来越多,这里我跟大家一起对各地图使用的坐标系做一个简单的探讨。…

unsigned int + int型结果分析

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 代码如下: “//”后为调试中的结果 unsigned int a 6; //a 6 …

MAC OSX在视图port哪个程序占用,杀死进程的方法

sudo lsof -i :9000COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 61342 a 313u IPv6 0x1111111111111 0t0 TCP *:cslistener (LISTEN)在此基础PID杀死进程:sudo kill -9 61342 版权声明:本文博主原创文章&am…

讯飞输入法有没有Linux,Debian testing 安装讯飞输入法 - Linux系统与应用 - LinuxApp - 水木社区...

突然发现Deepin发行版带有讯飞输入法,于是折腾了一会,安装好了这个输入法,现把安装过程分享如下:软件包的依赖:Package: iflyimeVersion: 0.9.962Section: develPriority: optionalArchitecture: amd64Depends: libboo…

几种C#程序读取MAC地址的方法

原文:几种C#程序读取MAC地址的方法以下是收集的几种C#程序读取MAC地址的方法&#xff0c;示例中是读取所有网卡的MAC地址&#xff0c;如果仅需要读取其中一个&#xff0c;稍作修改即可。 1 通过IPConfig命令读取MAC地址 ///<summary>///根据截取ipconfig /all命令的输出流…

写出float x 与“零值”比较的if语句——一道面试题分析

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 写出float x 与“零值”比较的if语句 请写出 float x 与“零值”比较的 if 语句&…

Conditional project or library reference in Visual Studio

Conditional project or library reference in Visual Studio In case you were wondering why you haven’t heard from me in a while, I’ve been busy, which isn’t really of much importance unless you know me on a personal level. What is relevant is that I recen…

linux 双mipi摄像头,VS-RK3399 在linux系统下面调试Mipi camera接口介绍

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼debian系统目前支持Usb camera是没有问题&#xff0c;走UVC功能接口。那么mipi 接口camera和并口接口的camera&#xff0c;在Debian系统怎么设置呢&#xff0c;其实原理一样&#xff0c;也走uvc接口封装函数.下面深圳视壮给大家简单…

HTTP必知必会

2019独角兽企业重金招聘Python工程师标准>>> HTTP消息HTTP请求消息HTTP响应消息消息首行请求行响应行消息头部请求头请求头消息正文请求正文响应正文Web服务器把接收到的HTTP请求消息封装成request对象&#xff0c;作为service的参数传入service函数&#xff0c;ser…

float数据在计算机内存中的存储方法

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 浮点型变量在计算机内存中占用4字节&#xff08;Byte&#xff09;,即32-bit。遵循IEEE…

Geometric Shapes - POJ 3449(多边形相交)

题目大意&#xff1a;给一些几何图形的编号&#xff0c;求出来这些图形都和那些相交。分析&#xff1a;输入的正方形对角线上的两个点&#xff0c;所以需要求出来另外两个点&#xff0c;公式是&#xff1a;x2:(x1x3y3-y1)/2; y2:(y1y3x1-x3)/2;x4:(x1x3-y3y1)/2; y4:(y1y3-x1x3…

更新10_linux,时隔十年,QQ更新了Linux版本

昨天1024程序员节&#xff0c;QQ悄悄地更新了QQ for Linux&#xff0c;也许是给各位一个惊喜吧。官网及其的简陋。和一个Word文档似的。十年一更&#xff0c;有网友称&#xff0c;瞬间回到QQ2006&#xff0c;确实界面功能有些落后&#xff0c;相信QQ可以跟上潮流的&#xff0c;…

[渗透测试]扫目录,Sqlmap利用均超时,利用dirb扫描

今天碰到一个网友传来的Webshell地址&#xff0c;问我对方如何取得webshell。 网站为阿里云服务器&#xff0c;存在明显的注入漏洞&#xff0c;但是任何语句都会令网页报错&#xff0c;sqlmap一直超时&#xff0c;御剑扫描目录1个线程也会导致被屏蔽IP。 经一学长提点&#xff…