文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > 外语学习 > Client Server
侵权投诉

Client Server

s60 c/s模型

Client/ Server

那我来抛砖引玉吧。你如果明白了,我也就省得跑路了。哈哈

symbian中的client/server机制:

Server和Client一般在不同的进程中运行,因此它们之间的通讯需要使用内核提供的某种IPC机制来进行通讯。Symbian提供一些封装好了的RSessionBase/CServer/CSession类供Client来建立和Server之间的连接,C/S之间通过消息(RMessage类)来进行通信,这样将内核的IPC实现细节隐藏在C++的函数调用中。

可以将Symbian中的C/S结构类似到一个基于TCP的Socket实现中。在一个典型的TCP Socket连接中,大概有如下的步骤:

1. Server启动,阻塞在Accept中等待客户请求

2. Client创建一个Socket,调用Connect尝试进行连接

3. Server从Accept返回,创建一个新的Socket和该Client进行通信

Symbian的C/S结构为:

1. Client创建一个RSessionBase,调用Connect方法连接Server

2. CServer当时阻塞在NewSession中,收到客户连接请求后,创建一个CSession该Client进行通信

3. 然后Client通过RSessionBase::SendReceive发送请求,Server端的CSession收到该请求并执行之。

因此,RSessionBase类似于TCP Socket中的Client端的套接字,CServer就是Server端那个Listen的套接字,CSession就是Server端用来和client通信的套接字。当然它们实际上有太多的不同。

稍微具体一点的基本流程是:

首先,Server开发者一般会提供给Client一个RSessionBase的派生类,例如我们常见的RFs。在这个

RSessionBase的派生类中,封装了一些函数,例如如何建立一个到Server的连接(按照惯例,该函数命名为Connect),如何将request进行封装等。

Client于Server之间的典型通讯步骤:

1. Client调用一个RSessionBase派生类的Connect函数,例如 RMyServerSession::Connect

2. 该函数内部实现将寻找当前系统运行的Server(通过TFindServer),如果没有发现该Server运行,则;

3. 启动该Server(通过RThread::Create函数在另一个线程中启动,或者通过RProcess::Create函数在一个独立的进程中启动该Server,后面这种比较常见)。

Server被启动后,Server内部的实现大概如下:

在Server线程中,首先安装一个CActiveScheduler,然后创建一个具体的CServer对象,CServer本身继承自CActive,这样就使得Server可以被CActiveScheduler调度。然后启动该Server(调用

CServer::StartL,大概CServer的内部实现是调用基类CActive::SetActive,表明自己发出了一个请求,希望该请求完成时被调度,对于CServer,它发出的请求就是希望收到Client的连接),然后进入wait loop(调用CActiveScheduler::Start函数)。当有客户通过CreateSession发送连接请求时,Scheduler将调用CServer::NewSessionL函数。

4. client调用RSessionBase::CreateSession函数建立一个到Server的连接(通过Server的名字)。(估计内核根据Server名字,找到对应该名字的线程RThread,然后就可以建立一个通道,估计RSessionBase中的iHandler成员变量用来代表这个连接通道,同时估计Server端的CSession中的RThread iClient成员

第1页

你可能喜欢

热门文档

相关文档

  • client与server交互进阶

    client与server交互进阶_IT/计算机_专业资料。FMS资料Server 端与 Client 端 method 触发与 data 广播概念 在 FCS 的应用上常会需要让 Client 与 Server 间的...

  • Browser_Server VS. Client_Server

    Browser/Server 结构 VS. Client/Server 结构 在目前的应用系统中,有大量的系统采用的 Client/Server 结构,也有很多的 系统采用了 Browser/Server 结构。Client/...

  • client server model

    client server model_计算机/互联网_科技_PPT专区。客户服务器模型介绍Client/Server Model ---Group 3 Definition ? The client/server model is a computing mo...

  • linux_socket_tcp_server_client

    { struct sockaddr_in client_address; int len; int client_sockfd; char *data = "Server to Client String!\n"; char data2[100]; pid_t pid; printf...

  • OPC Server 及 Client系统

    OPC Server 及 Client系统_IT/计算机_专业资料。详细介绍OPC Client以及OPC Server第五章:Modbus 通信最新发展 1 OPC Server 及 Client 系统 1.1 何谓 OPC ...

  • java client server

    java client server_IT/计算机_专业资料。java client serverimport import import import import import import java.io.BufferedReader; java.io.IOException; ...

  • adUseClient和adUseServer区别

    VB中用ADO连接数据库的操作中遇到CursorLocation的adUseClient和adUseServer这两个属性值,收集了些资料,帮助理解。服务器端游标将结果集放在服务器的缓冲区内,客户端...

  • server client

    server client_其它语言学习_外语学习_教育专区 暂无评价0人阅读0次下载举报文档 server client_其它语言学习_外语学习_教育专区。...

  • 关于thrift client和server的编写方法

    关于thrift client和server的编写方法_计算机软件及应用_IT/计算机_专业资料。使用 Thrift RPC 编写程序 1. 概述 本文以 C++语言为例介绍了 thrift RPC 的使用...

  • VisualSVN_Server、SVN_Client安装_配置_使用图文教程_...

    VisualSVN_Server、SVN_Client安装_配置_使用图文教程_超经典_IT/计算机_专业资料。本文介绍了SVN_Server和SVN_Client的配置和使用方法,图文并茂,看过之后,定让你...

站点地图 | 文档上传 | 侵权投诉 | 手机版
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.guandang.net All Rights Reserved.  -  email