mtk平台手机通过gprs网络连接pc
2010-06-10 09:36
204 查看
GPRS:通用分组无线技术(General packet radios service),GSM网络覆盖的区域都可快速实现GPRS的覆盖.
gprs的特点:高速率的数据传输.目前gprs速率达到40kb/s以上,gprs可实现的最高速率是171.2kb/s.EDGE最高速率可达
到384kb/s.可以提供按流量计费方式.快捷登录,永远在线.gprs的用户一开机就始终附着在gprs网络上,登录时间只要1-3秒,远快于普通拨
号方式.
中国移动gprs网络有两个接入点:cmwap和cmnet.
如果使用cmwap接入点连接上gprs网络后手机得到的ip地址形如10.x.x.x,这个地址是一个A类地址,也就是内网地址.这个地址的访问
受到很多限制,它只能够访问gprs网而不能访问整个internet,如果要用这个地址访问internet就需要使用代理服务器,如中国移动的
10.0.0.172的80端口.
如果使用cmnet接入点连接上gprs网络后手机得到的ip地址是一个形如202.x.x.x或者61.x.x.x这样的地址.这是一个C类地址,它可以自由的访问整个internet,也就说它和电脑的上网能力是一样.但是有些地方的移动卡不支持cmnet.
mtk平台手机基于gprs连接pc的实现方式(tcp通讯方式)
1.建立data account(上网账号)
MMI层发送PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ消息到L4C层,在消息中设定data account 的id(1-10),自定义名称,APN(cmnet,cmwap),用户名,密码,DNS等信息.
2.创建socket
手机上用socket建立连接和pc用socket建立连接的原理是一样的,只是api函数不一样.
kal_int8 soc_create(kal_uint8 domain, socket_type_enum type, kal_uint8 protocol, module_type mod_id, kal_uint32 nwk_account_id);
3.设置socket的异步非阻塞模式
kal_int8 soc_setsockopt(kal_int8 s, kal_uint16 option, kal_uint8 *val, kal_uint8 val_size);
这里的第二个参数option设置为SOC_NBIO(socket非阻塞模式)
kal_int8 soc_setsockopt(kal_int8 s, kal_uint16 option, kal_uint8 *val, kal_uint8 val_size);
这里的第二个参数option设置为SOC_ASYNC(异步i/o)
4.建立连接
kal_int8 soc_connect(kal_int8 s, sockaddr_struct *addr);
5.发送数据
kal_int32 soc_send(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags);
6.读取数据
kal_int32 soc_recv(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags);
7.关闭连接
kal_int8 soc_close(kal_int8 s);
程序开发要点:
1.实现之前要规定好发送方和接收方数据传输的协议,数据格式.包括如何确定数据长度,校验算法,是否加密等.
2.要注意对其方式和存储方式.如果发送方和接收方的对其方式和存储方式不一样,数据可能会传输错误.
3.错误处理,确保可以捕捉到所有错误,从而关闭socket连接,释放资源.
4.超时设定,由于socket接口没有提供超时功能,所以需要自己实现超时功能,可在每次操作前设定timer,如超时仍没有收到消息,则进行错误处理,特别要考虑到多个socket同时打开的情况.
文章只是简单的介绍了在mtk平台手机上如何使用socket套接字来实现网络通讯,下一篇我会给出一个示例代码来详细说明mtk手机的socket套接字是如何实现异步I/O和消息驱动模型的.
gprs的特点:高速率的数据传输.目前gprs速率达到40kb/s以上,gprs可实现的最高速率是171.2kb/s.EDGE最高速率可达
到384kb/s.可以提供按流量计费方式.快捷登录,永远在线.gprs的用户一开机就始终附着在gprs网络上,登录时间只要1-3秒,远快于普通拨
号方式.
中国移动gprs网络有两个接入点:cmwap和cmnet.
如果使用cmwap接入点连接上gprs网络后手机得到的ip地址形如10.x.x.x,这个地址是一个A类地址,也就是内网地址.这个地址的访问
受到很多限制,它只能够访问gprs网而不能访问整个internet,如果要用这个地址访问internet就需要使用代理服务器,如中国移动的
10.0.0.172的80端口.
如果使用cmnet接入点连接上gprs网络后手机得到的ip地址是一个形如202.x.x.x或者61.x.x.x这样的地址.这是一个C类地址,它可以自由的访问整个internet,也就说它和电脑的上网能力是一样.但是有些地方的移动卡不支持cmnet.
mtk平台手机基于gprs连接pc的实现方式(tcp通讯方式)
1.建立data account(上网账号)
MMI层发送PRT_MMI_PS_SET_GPRS_DATA_ACCOUNT_REQ消息到L4C层,在消息中设定data account 的id(1-10),自定义名称,APN(cmnet,cmwap),用户名,密码,DNS等信息.
2.创建socket
手机上用socket建立连接和pc用socket建立连接的原理是一样的,只是api函数不一样.
kal_int8 soc_create(kal_uint8 domain, socket_type_enum type, kal_uint8 protocol, module_type mod_id, kal_uint32 nwk_account_id);
3.设置socket的异步非阻塞模式
kal_int8 soc_setsockopt(kal_int8 s, kal_uint16 option, kal_uint8 *val, kal_uint8 val_size);
这里的第二个参数option设置为SOC_NBIO(socket非阻塞模式)
kal_int8 soc_setsockopt(kal_int8 s, kal_uint16 option, kal_uint8 *val, kal_uint8 val_size);
这里的第二个参数option设置为SOC_ASYNC(异步i/o)
4.建立连接
kal_int8 soc_connect(kal_int8 s, sockaddr_struct *addr);
5.发送数据
kal_int32 soc_send(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags);
6.读取数据
kal_int32 soc_recv(kal_int8 s, kal_uint8 *buf, kal_int32 len, kal_uint8 flags);
7.关闭连接
kal_int8 soc_close(kal_int8 s);
程序开发要点:
1.实现之前要规定好发送方和接收方数据传输的协议,数据格式.包括如何确定数据长度,校验算法,是否加密等.
2.要注意对其方式和存储方式.如果发送方和接收方的对其方式和存储方式不一样,数据可能会传输错误.
3.错误处理,确保可以捕捉到所有错误,从而关闭socket连接,释放资源.
4.超时设定,由于socket接口没有提供超时功能,所以需要自己实现超时功能,可在每次操作前设定timer,如超时仍没有收到消息,则进行错误处理,特别要考虑到多个socket同时打开的情况.
文章只是简单的介绍了在mtk平台手机上如何使用socket套接字来实现网络通讯,下一篇我会给出一个示例代码来详细说明mtk手机的socket套接字是如何实现异步I/O和消息驱动模型的.
相关文章推荐
- 浅谈mtk平台手机通过gprs网络连接pc
- 浅谈mtk平台手机通过gprs网络连接pc
- 判断MTK平台手机主板芯片型号的简单方法
- MTK手机平台驱动“含金量分析”
- 关于android手机mtk平台 信号格数的修改
- MTK 如何快速上手一个手机平台
- 【转载】国产手机MTK平台MRP软件应用安装大全
- MTK平台手机音量修改方法 DIY的就是山寨手机
- android mtk平台 手机恢复出厂设置数据不删除的方法
- MTK手机平台添加资源和菜单的方式
- MTK平台手机进工程模式方法
- 智能手机之MTK硬件平台简介
- 山寨手机驱动,山寨手机管理软件,MTK平台驱动和管理软件
- MTK手机平台添加资源和菜单的方式(转)
- 如何解决MTK平台手机重启问题
- MTK平台手机音量参数的调整方法
- 电脑如何通过GPRS手机上网
- mtk,展讯等手机平台知识杂烩
- mtk 6235/6253平台手机锁问题相关
- 通过手机GPRS收发Gmail邮件