Blue框架的基本教程二:客户端调用服务器的方法

原创 2007年10月14日 12:12:00
如蒙转载,请注明文章出处:www.sujun.org   作者:弃天笑

上篇说到客户端连接和端开连接,服务器有什么事件,那么我们先做就来看看客户端调用服务器上的方法
客户端连接服务器的代码这里就不在重复了,只说调用服务器的代码
定义个接受服务器返回结果的响应事件对象
var receice:Object = new Object();
//服务器返回结果时调用该方法
receice.onResult = function(num:Number)
{
    trace("num:" + num);
}
//远程调用方法失败时响应该方法
receice.onFault = function(msg:String)
{
    trace("fail:" + msg);
}

//呼叫服务器的方法
function callServerMethod()
{
    //对象
    var obj:Object = new Object();
    obj.name = "objName";
    obj.num = 50;
    //数组
    var ary:Array = [1,4,7,16,98,100];
        //把参数发送到服务器上去,第一个为服务器上的一个类实例的标示
        //第二参数是要调用的方法名,第三个是要接受服务器返回结果的对象
        //往后就是要传到服务器的参数了,注意,参数类型顺序一定要和服务器方法的参数一致
    netConnect.call("services","callParams",receice,"中文",23);
}

//注意,记得在连接服务器成功后。再调用这个callServerMethod()函数就可以了

接着再来看服务端的代码,首先是要被客户端调用的对象
ReceiveClientCall.java
public class ReceiveClientCall
{
    public double callParams(String name, double age)
    {
        System.out.println("客户端传过来的name:" + name);
        System.out.println("客户端传过来的age:" + age);

        
        return 100;
    }
}

很简单,就定义了一个callParams方法以及两个参数,对应客户端的
netConnect.call("services","callParams",receice,"中文",23);
接着就可以看控制台是否打印出客户端传过去的数据。

就这样写一个类就可以被客户端调用了吗?答案是不行的,我们还必须做一些事,那就是告诉服务器,有这么一个对象可以被客户端调用
那么看回MainFrame.java这个类的代码
比较一下之前,就可以发现多了一行代码

import org.sujun.blue.net.Server;
import org.sujun.blue.global.Application;

public class MainFrame 
{
    public static void main(String[] args)
    {
        //注册响应客户端连接和端开处理类
        Application.addStartEndListenter(new StartAndEnd());
               //注册被客户端调用的对象
        Application.regeditClass("services", ReceiveClientCall.class);
        Server ser = new Server();
        //设置端口
        ser.setPort(5588);
        //启动服务
        ser.startServer();
    }
}

仔细一看,就是多了这行代码
 //注册被客户端调用的对象
Application.regeditClass("services", ReceiveClientCall.class);
第一个参数是被该对象命个名,即是被客户端调用的称号,第二个就是一个Class对象啦

恩,做完这些步骤,就可以去运行服务器看效果啦
(其实我们还可以传对象,数组等等的)

源代码下载:  [url=http://www.sujun.org/downfiles/blue/example.rar[/url]例子代码 
版权声明:本文为博主原创文章,转载必须声明出处和作者。地址:http://blog.csdn.net/sujun10 作者:弃天笑

三、深入Javascript(2)_看智能社blue老师JS视频整理的笔记

数组 1、定义数组的2种写法: (1)var a=[1,2,3];  (2)var a=new Array(1,2,3); 这两种方法作用一样,一般用第1种就可以,因为它写起来简单,所有性能略高。 ...
  • cherry_vicent
  • cherry_vicent
  • 2014年12月24日 17:44
  • 1488

三、深入Javascript(1)_看智能社blue老师JS视频整理的笔记

1、函数返回值 ( return ) function show() { return 12; }; alert(show()); //弹出12 (1)return就是函数返回值...
  • cherry_vicent
  • cherry_vicent
  • 2014年12月24日 16:51
  • 5783

使用Unity3D内置Network实现简单的客户端与服务端相连接

新建一个场景,添加两个脚本分别为客户端Client和服务端Server,将这两个脚本添加到主摄像机: 客户端Client代码: using UnityEngine; using System.Co...
  • u012337666
  • u012337666
  • 2015年04月07日 21:44
  • 3808

客户端-服务器架构、Socket、TCP/UDP简介

假如有一天你丢失了银行卡 你要到银行去找工作人员(服务器) 排队挂号等待(FCFS原则) 轮到你了,就去柜台和工作人员沟通(建立连接) 对工作人员说“我卡丢了,要挂失”(向服务器提出请求) ...
  • PythonKidDz
  • PythonKidDz
  • 2017年02月08日 15:09
  • 367

Mina基础框架及客户端-服务端框架对应实现例子

原文地址:Mina基础(Apache user guide Chapter2 basics)1.1.1. Mina应用架构    被问最多的问题就是,“Mina的基础应用看起来是什么样的呢?”。通过这...
  • boonya
  • boonya
  • 2016年06月01日 18:18
  • 3297

扯扯python调用rpc实现分布式系统

rpc 一般俗称,远程过程调用,把本地的函数,放到远端去调用。 通常我们调用一个方法,譬如: sumadd(10, 20),sumadd方法的具体实现要么是用户自己定义,要么存在于该语言的库函数...
  • abcd1f2
  • abcd1f2
  • 2016年05月09日 11:47
  • 2990

客户端到服务器端的通信过程及原理(很清晰,保证看后顿悟)

学习任何东西,我们只要搞清楚其原理,就会触类旁通。现在结和我所学,我想总结一下客户端到服务器端的通信过程。只有明白了原理,我们才会明白当我们程序开发过程中错误的问题会出现在那,才会更好的解决问题。 ...
  • qq_29894329
  • qq_29894329
  • 2016年03月28日 02:06
  • 11489

客户端和服务器之间通信讲解

原文网址:http://www.myexception.cn/program/1600316.html 一、关键词解释   客户端:能向服务器发送信息,提出请求。   服务器:能接收...
  • huayutiancheng
  • huayutiancheng
  • 2016年09月08日 09:52
  • 4194

Java中使用socket实现客户端与服务端交互

Socket解释: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取...
  • min996358312
  • min996358312
  • 2017年03月15日 17:10
  • 1301

android客户端和服务端js交互

 挺帅的移动开发专栏  http://blog.csdn.net/wangtingshuai/article/details/8631835        在android的开发过程中,有很多...
  • xiangzhihong8
  • xiangzhihong8
  • 2014年01月10日 23:24
  • 1042
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Blue框架的基本教程二:客户端调用服务器的方法
举报原因:
原因补充:

(最多只允许输入30个字)