Symbian 活动对象和RSocket
来源:互联网 发布:hmm python实现 编辑:程序博客网 时间:2024/05/16 23:49
Symbian 异步服务框架
1. CActive活动对象
活动对象主要用于向Asynchronous Servie Provider提交异步请求和取消异步请求;提交异步请求调用SetActive();DoCancel()函数用来取消异步请求;
在实现异步对象时,一定要实现RunL()和DoCancel()这两个函数;RunL()函数由CActiveScheduler活动调度器调用,而DoCancel()函数在取消异步请求时调用。
2. CActiveScheduler活动调度器
活动调度器实际上是一个“等待循环”,它一直等待事件。当接收到标记事件发生的信号时,活动调度器从从多可能的事件中判断那个事件发生,然后调度合适活动对象的RunL()函数来执行。
注意:每个RThread都有一个CActiveScheduler, 而每个CActiveScheduler可以处理多个CActive,通过add()函数来添加CActive。
3. Asynchronous Servie Provider异步服务提供者
Asynchronous Servie Provider有很多种,可以根据不同的需求来选择。
Symbian中使用TCP/IP协议进行通信
Symbian系统中网络编程主要支持IP,ICMP, TCP和UPD协议;主要使用RSocketServer,RSocket,RHostResolver和TInetAddr。
RSocketServer:用来建立和内核端socket服务组件之间的连接以及相关资源。应用程序中所有与socket相关的操作都要该类的一个实例来进行操作。
RSocket:用来建立连接,发送和接受数据等等。
RHostResolver:域名解释。
TInetAddr:用来保存地址和端口。
- 如何应用RSocket
范例:
Tint err;
RSocketServ ss;
RSocket sock;
err = ss.Connect();
err = sock.Open(ss, KAfInet, KSockStream, KProtocolInetTcp);
每一个RSocket在Open时都要有一个RSocketServ实例,而其他参数如下:
AddrFamily:KAfInet or KAfInet6 for IPv6
socketType:KSockStream(TCP/IP)or KSockDatagram for UDP
protocol:KProtocolInetTCP or KProtocolInetUDP
- 如何connect和disconnect
RSocket::Connect()用于连接到远端服务器,参数如下:
AddrFamily:KAfInet or KAfInet6 for IPv6
socketType:KSockStream(TCP/IP)or KSockDatagram for UDP
protocol:KProtocolInetTCP or KProtocolInetUDP
注意:如果socket采用的是UDP协议,则不需要connect。
RSocket::CancelConnect()用于取消连接。
RSocket::Shutdown()用于异步的关闭连接。
- 如何获取和设置IP地址
RSocket::LocalName()用于获取本地的地址信息,类型为TInetAddr
RSocket::Bind()用于绑定socket地址,类型为TInetAddr。
注意:在调用RSocket::Listen必须先Bind地址。
RSocket::RemoteName()用于获取远端服务器地址信息。
- 发送和接收数据
发送数据
RSocket::Send()采用TCP/IP协议的
RSocket::SendTo()采用UDP协议的
发送数据
RSocket::Recv(), RSocket::Read(), RSocket::RecvOneOrMore()采用TCP/IP协议
RSocket::RecvFrom()采用UDP协议
- 域名解释
使用RHostResolver类进行域名的解释和反解释,使用前要先调用RHostResolver::Open(),使用后要调用RHostResolver::Close()关闭。
而获取域名信息主要用下面两个函数
RHostResolver::GetByName()
RHostResolver::GetByAddress();
- Symbian 活动对象和RSocket
- Symbian 中的活动对象和CS框架
- 【转】Symbian OS — 活动对象和活动规划器
- Symbian之活动对象
- symbian 活动对象理解
- Symbian 活动对象框架
- symbian活动对象实战
- [转]symbian rsocket api 使用方法
- symbian rsocket 的一个例子
- Symbian的消息,异步服务和活动对象
- Symbian OS 之活动对象
- Symbian OS 之活动对象
- Symbian OS 之活动对象
- Symbian OS 之活动对象
- Symbian OS 之活动对象
- Symbian 活动对象彻底理解
- Symbian 活动对象彻底理解
- Symbian 活动对象彻底理解
- Windows Mobile SDK例子浅析
- effective c++ 学习笔记2----auto_ptr
- test
- [常见问题]文件点击右键出现WINDOWS INSTALLER”解决方案
- java--JTable用法
- Symbian 活动对象和RSocket
- 献给想学有所成的人.
- 生活总会越来越好
- 资料收集----windows mobile 常用代码(转)
- Makfile的写法笔记
- How to Make an HTTP Connection Using TCP/IP with RSocket
- Agent Login–Level and DN-Level Options
- WINCE及MOBILE常用代码(转)
- Swing中 JTable用法简介之宏观篇(包括与数据库的连接)