ice文件:

module Modipplace {

    interface  Ipplace{

         string iptoplace(string s); 

    };  

};

server文件:

ipplace_interface(ip):

省略

class IpplaceI(Modipplace.Ipplace):

    def iptoplace(self,ip,current=None):

        result = ipplace_interface(ip)

        return result

if __name__ == "__main__":

    reload(sys)

    sys.setdefaultencoding("utf-8")

    status = 0 

    ic = None

    try: 

        ic = Ice.initialize(sys.argv)

        adapter = ic.createObjectAdapterWithEndpoints("ipplaceAdapter", "tcp  -p 5100")

        object = IpplaceI()

        adapter.add(object,ic.stringToIdentity("simpleIpplace"))

        adapter.activate()

        print "ice actuvated"

        ic.waitForShutdown()

    except:

        traceback.print_exc()

        status = 1

if ic:

        # Clean up 

        try:

            ic.destroy()

        except:

            traceback.print_exc()

            status = 1

            sys.exit(status)

client文件:

import sys,Ice

import Modipplace





if( len(sys.argv)!=2 ):

    print "error , the usage is : ",sys.argv[0]," ip address"

    exit(1)

ic=Ice.initialize(sys.argv)

base=ic.stringToProxy("simpleIpplace:tcp -p 5100")

ipplacer=Modipplace.IpplacePrx.checkedCast(base)

if not ipplacer:

    raise RuntimeError("Invalid proxy")

print sys.argv[1],type(sys.argv[1])

place = ipplacer.iptoplace(sys.argv[1])

print "place: ",place

问题;这个是同步的情况,异步的情况很难写阿

参考:

两个简单的示例

http://blog.csdn.net/cp62/article/details/3502731

http://blog.sina.com.cn/s/blog_5fddeaac0101266r.html

ICE第四篇-----python版本的更多相关文章

  1. 第四篇.python的基础

    目录 第四篇.python基础01 1. 变量 2. 常量 3. python变量内存管理 4. 变量的三个特征 5. 花式赋值 6. 注释 7. 数据类型基础 8. 数字类型 9. 字符串类型 10 ...

  2. 【Python之路】第四篇--Python基础之函数

    三元运算 三元运算(三目运算),是对简单的条件语句的缩写 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2” ...

  3. 第三十四篇 Python面向对象之 反射(自省)

    什么是反射? 反射的概念是由Smith在1982年提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语 ...

  4. 第四篇 Python循环

    While 循环 For 循环

  5. Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速

    Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...

  6. Python之路【第十四篇】:AngularJS --暂无内容-待更新

    Python之路[第十四篇]:AngularJS --暂无内容-待更新

  7. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  8. python从零开始 -- 第2篇之python版本差异

    python从零开始 -- 第2篇之python版本差异 第0篇开始,咱们就说选择 python 3.x,一般来说,咱们面临选择的时候总是想了解更多一点,并且版本之间的对比能引申出很多有意思的故事和知 ...

  9. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...

随机推荐

  1. remote staspack

    输入文件:$HOME/utility/statspack11g/statspack.env, $HOME/utility/statspack11g/dblist,$HOME/utility/stats ...

  2. C++函数后面的throw()

    看CImage函数实现的时候发现了这么个东东  inline HBITMAP CImage::Detach() throw() 它是函数提供者和使用者的一种君子协定,标明该函数不抛出任何异常. 之所以 ...

  3. 封装sdk API 应用

    1 #include "QWinApp.h" 2 #include "QGlobal.h" 3 int WINAPI _tWinMain(HINSTANCE h ...

  4. php+redis实现电商秒杀功能

    这一次总结和分享用Redis实现分布式锁来完成电商的秒杀功能.先扯点个人观点,之前我看了一篇博文说博客园的文章大部分都是分享代码,博文里强调说分享思路比分享代码更重要(貌似大概是这个意思,若有误请谅解 ...

  5. OpenGL———混合的基本知识

    混合是一种常用的技巧,通常可以用来实现半透明.但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象.混合是什么呢?混合就是把两种颜色混在一起.具体一点,就是把某一 ...

  6. static方法与非static方法是否可以互相调用

    情况一.static方法调用非static方法 非静态方法只有实例对象才可调用,而静态方法随着类的加载而加载,类的加载在实例对象产生之前,所以静态方法不能调用非静态方法 情况二.非atic方法调用st ...

  7. [转]new一个Object对象占用多少内存?

    我们分解下ArrayList arr = new ArrayList();等同于ArrayList arr = null;//初始化arr = new ArrayList();//实例化这两个过程.初 ...

  8. svn 设置文件可执行权限

    本地文件在commit到仓库之前若没有chmod +x 权限的话,那在svn仓库里的文件将会保持当前无可执行属性状态. 即使在本地chmod +x filename 之后,再提交到仓库也是没有用的.c ...

  9. 利用Hierarchy Viewer优化布局

    好久没更新博客了,趁着清明来写点什么. 今天来讲下如何使用android中提供的工具优化我们的布局.首先我们写一个最简单的框架布局. <?xml version="1.0" ...

  10. Effective java -- 4 泛型

    第二十三条:请不要在代码中使用原生态类型就是像Set这种待泛型的,就把泛型明确写出来. 第二十四条:消除非受检警告就是Set<String> sets = new HashSet();这种 ...