WEB开发网
开发学院手机开发Symbian 开发 Symbian Cactive和RSocket笔记 阅读

Symbian Cactive和RSocket笔记

 2010-06-22 02:59:00 来源:WEB开发网   
核心提示:1. CActive活动对象活动对象主要用于向Asynchronous Servie Provider提交异步请求和取消异步请求;提交异步请求调用SetActive();DoCancel()函数用来取消异步请求;在实现异步对象时,一定要实现RunL()和DoCancel()这两个函数;RunL()函数由CActiveS

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

1 2  下一页

Tags:Symbian Cactive RSocket

编辑录入:coldstar [复制链接] [打 印]
赞助商链接