IceGrid 用于Python服务器和客户端通信——参数传递
本篇介绍如何用IceGrid建立python多机通信,传递比较复杂的参数
Ice代码:Demo.ice
#ifndef TOS_ICE_COMMON
#define TOS_ICE_COMMON module demo
{
class EventArgs
{
string source;
string occurTime;
}; struct Point
{
int x;
int y;
}; class pointEventArgs extends EventArgs
{
Point pt;
}; interface PointEvent
{
["amd","ami"] idempotent void OnNewPointEvent(pointEventArgs args);
}
}; #endif
1.python安装zeroC Ice:
pip install zeroc-ice
或者参照:https://blog.csdn.net/qq_37556007/article/details/80843541
2.对Ice文件进行切片
slice2py Demo.ice
得到Demo_ice.py
3.编写客户端
import Demo_ice
import Ice
import sys
import time class Client:
def __init__(self):
self.point = Demo_ice._M_demo.Point(x=10, y=20)
self.event = Demo_ice._M_demo.pointEventArgs(source='client', occurTime=time.time().__str__(), pt=self.point) with Ice.initialize(sys.argv) as communicator:
base = communicator.stringToProxy('Communicate:tcp -p 10001')
self.contract = Demo_ice._M_demo.PointEventPrx.checkedCast(base)
if not self.contract:
raise RuntimeError('Invalid Proxy')
# 如要调用同步发送方法,方法名去掉Async即可
# 参数加两个括号因为传过去的是个元组
self.contract.OnNewPointEventAsync((self.event)) Client()
4.编写服务器
import Demo_ice
import Ice
import sys class DemoI(Demo_ice._M_demo.PointEvent):
# 不同于Java和C++ Slice出的抽象类,Python的类并不含有异步方法,继承的同步方法可以用于异步调用
def OnNewPointEvent(self, args, current=None):
print "Received:"
print args with Ice.initialize(sys.argv) as communicator:
adapter = communicator.createObjectAdapterWithEndpoints("Communicate:tcp", "tcp -p 10001")
object = DemoI()
adapter.add(object, communicator.stringToIdentity("Communicate"))
adapter.activate()
communicator.waitForShutdown()
IceGrid 用于Python服务器和客户端通信——参数传递的更多相关文章
- js json简介(json的本质也是字符串)(用于服务器和客户端通信)
js json简介(json的本质也是字符串)(用于服务器和客户端通信) 一.总结 1.json的语法和js的语法非常像,只是json的键和值都是双引号,因为json的本质也是字符串 2.json是一 ...
- C#调用接口注意要点 socket,模拟服务器、客户端通信 在ASP.NET Core中构建路由的5种方法
C#调用接口注意要点 在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用, 所以首先需要通过调用登录接口来保存c ...
- socket,模拟服务器、客户端通信
服务器代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;u ...
- 一个 Java 的 Socket 服务器和客户端通信的例子
一个 HelloWord 级别的 Java Socket 通信的例子.通讯过程: 先启动 Server 端,进入一个死循环以便一直监听某端口是否有连接请求.然后运行 Client 端,客户端发出连接请 ...
- C# Socket简单例子(服务器与客户端通信)
这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信. 注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序.在这个例子中,实际上还有很多问题没有解决,如消 ...
- (转)C# Socket简单例子(服务器与客户端通信)
本文转载自:http://blog.csdn.net/andrew_wx/article/details/6629721 这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信. 注意:此 ...
- python -服务器与客户端断电续传程序详细介绍
6.28自我总结 客户端与服务器之间文件传输断电续传 `通过判断文件大小,以及文件在读取中的指针位置的调整来解决断电续传问题' 1.程序目录 E:/断电续传 |___bil | |___common. ...
- JAVA基础篇—模拟服务器与客户端通信
第一种: 客户端class Client package 服务器发送到客户端; import java.io.BufferedReader; import java.io.InputStreamRea ...
- Socket 服务器和客户端通信
//服务器端package com.svse.service; import java.io.BufferedReader; import java.io.IOException; import ja ...
随机推荐
- 【Java】【12】精确的加减乘除运算
前言:用了BigDecimal对象 正文: 1,加法 /** * @param v1 被加数 * @param v2 加数 * @param scale 保留几位小数*/ public static ...
- Vue 知识整理—01-基础
一:Vue是什么? Vue是一个JS框架. Vue.js是一套构建用户界面的渐进式框架. 库和框架的区别: ☞库:提供一些 API 工具函数,体现了封装的思想,需要我们主动调用: ☞框架:提供一套完整 ...
- 【IDEA填坑】xml不编译
今天在maven编译Springboot项目的时候,发现src/main/resources下的配置文件编译失败(就是war包中没有放入xml配置文件导致程序启动失败),经查询资料,发现新版本的IDE ...
- C# Winform 仪表盘
winform 仪表盘相关下载链接://download.csdn.net/download/floweroflvoe/10432601?utm_source=bbsseo 控件首次拖拽上来是这样的: ...
- 【算法】祭奠spfa 最短路算法dijspfa
题目链接 本题解来源 其他链接 卡spfa的数据组 题解堆优化的dijkstra 题解spfa讲解 来自以上题解的图片来自常暗踏阴 使用前向星链表存图 直接用队列优化spfa struct cmp { ...
- composer 自动加载(php-amqplib)
最近要使用RabbitMQ 做消息队列,也是刚接触到.因为用的的TP框架,comoser又下载不下来,所以只能手动下载拓展包,做手动加载,在php-amqplib是我手动下载下来的拓展包,创建一个co ...
- 电磁波、无线电、802、WLAN及WiFi的区别与联系
一.电磁波.无线电.WLAN和WiFi的关系 电磁波 > 无线电 [+ 可见光] > WLAN [+ 电话 ]> WiFi [+蓝牙] 参考:https://zh.wikipedia ...
- Hibernate-----阶段总结
Hibernate -----总结 一.在使用Hibernate的时候 首先我们要导入Hibernate类库,导入Hibernate压缩包中lib文件中required中的包 ...
- sql:按年、月、日钻取时间
#按月排SELECT count(EN_NAME), DATE_FORMAT( CREATE_DATE, "%Y-%m" )FROM financeWHERE DATE_FORMA ...
- Android系统中是否开启定位及定位模式的判断
1.关于Android系统中不同的定位模式 Android系统中包括3中定位模式: 使用GPS.WLAN和移动网络 使用WLAN和移动网络 仅使用GPS 截图 特点 同时使用GPS.WIFI及基站 ...