- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 UDT library在 Python 中,所以我需要一个包装器。我找到了这个:pyudt ,但我不知道如何使用它来点对点发送文件。谁能指出我正确的方向?
最佳答案
经过这么多次我发现了这个问题及其解决方案:
安装pyudt-0.1a的步骤是:
安装:libboost-python1.46-dev 或等价物(例如,在 linux-ubuntu12.04 中它在 reps 中。)
将 udt.h(来自:http://sourceforge.net/projects/udt/)安装到系统目录中,
或
(将udt.h文件放在与pyudt-0.1a文件相同的路径下,然后将“pyudt.cpp”的一行改成:
#include <udt.h>
到:
#include "udt.h"
).
例如:
... libraries=['udt', 'boost_python-py27'])
您必须更正错误,从:
int r = UDT::send(_sock, data.c_str(), data.length(), 0);
到:
int r = UDT::send(_sock, data.c_str(), data.length()+1, 0);
因为还必须发送表示字符串结尾的字符“\0”,否则垃圾将附加到您的字符串中。
您可以选择:
_sock = UDT::socket(AF_INET, SOCK_DGRAM, 0); --» default
或:
_sock = UDT::socket(AF_INET, SOCK_STREAM, 0); --» optional
在对应的文件夹中:
python2.7 ./setup.py build
sudo python2.7 ./setup.py install
或者,(如果您没有为所有用户安装它的管理员权限,并且只想为您尝试一下:
python2.7 ./setup.py build
python2.7 ./setup.py install --prefix=~/pyudt-0.1a/installation_dir/ #in this case, pyudt would only work if called from that directory
)
那么,一个简单客户端的代码可以是:
import pyudt
socket = pyudt.pyudt_socket()
socket.connect(("127.0.0.1", 7000))
socket.send("hello_world!")
它可以工作,它可以与我的 cpp 服务器通信!
注意:如果您需要更多帮助,您可以在 python 的控制台中编写:
import pyudt
dir(pyudt.pyudt_socket) # to list the available functions
help(pyudt) # to get more help
附言。使用此安装教程创建的文件是:/usr/local/lib/python2.7/dist-packages/pyudt.so, and/usr/local/lib/python2.7/dist-packages/pyudt-0.1a.egg-info
关于UDT C++ 库的 Python 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7222852/
我有 table emp(id,name,list>) 。这里地址是cassandra UDT定义为create TYPE address (hno int,street text); 。我试图使用下
官方文档告诉我们不要对主键使用 UDT。这有什么特别的原因吗?这样做的潜在缺点是什么? 最佳答案 这句话是为了劝阻用户不要对 PK 列不加区别地使用 UDT。 UDT 在其当前版本中的主要动机(即,考
假设我有一组 UDT。我按如下方式填充它: public type udtEmp Id as long Name as string end type dim col as new C
Cassandra 表和UDT CREATE TYPE IF NOT EXISTS phone_type( code TEXT, phone TEXT, ); CREATE TABLE I
我有一个 Java 应用程序,其中有 Spark-1.4.0 和 Cassandra-2.1.5 以及 Cassandra-Spark-connection-1.4。 0-M1. 在此应用程序中,我尝
多年来,我一直避免在 VBA 中使用 Public Type UDT,因为它们很难传递,而且我从来没有真正费心去理解为什么……直到现在 - 它是只需创建一个类模块并改为使用实际对象就更容易了。 但最近
我编写了一个返回用户定义类型的函数。 如果函数出现任何错误,我如何返回一个空的 UDT? 我尝试将函数设置为“无”,但它抛出“需要对象”错误。 提前致谢。 最佳答案 如果可能,请改用类/对象。甚至可以
This is my mssql UDT create type ConditionUDT as Table ( Name varchar(150), PackageId int );
这是我接收 UTD 消息的程序。我打算用它通过 wifi 接收 640*480 YUV 图像。我应该设置多大的缓冲区?是否可以在接收到第一张图像后设置缓冲区以找出实际大小? 下面是我的全部代码,但基本
我使用 UDT 库发送我的数据。但似乎无法正确发送 unsigned char* 数据。一方面我发送它就像 int rc = UDT::sendmsg(socket, full_data, size,
可以对卡住列使用聚类键吗? 也许: CREATE TYPE user_details ( email varchar, password varchar, createdAt timest
我想知道PostgreSQL的JDBC驱动42.2.8是否支持UDT映射? 我在 SQLData 实现上苦苦挣扎了一段时间,但遇到了错误: org.postgresql.util.PSQLExcept
我正在使用 netty + udt + rendezvous 测试此示例的修改版本: http://netty.io/4.0/xref/io/netty/example/udt/echo/rendez
我想要一种通用的方法来为任何 C++ 用户定义的类型创建唯一的编译时标识符。 例如: unique_id::value == 0 // true unique_id::value == 1 // tr
我有一个循环,它读取一堆 XML 文件,对于每个文件,它验证 XML 中的数据并将其加载到一些 UDT 中,然后对数据进行一些工作。 然后它返回到循环的开头,UDT 仍然有来自前一个 XML 的数据。
我尝试使用 SparkSQL (v.1.3.0) 访问 PostgreSQL 数据库。在这个数据库中,我有一个表 CREATE TABLE test ( id bigint, values dou
我需要根据 IP 地址存储有关用户位置的记录,但我不确定如何最好地对其进行建模。 对于每个地址,我们需要记录机器的详细信息(ipaddress、agentId)和机器的位置(isocode、城市)。此
我正在尝试通过 DB2 使用嵌套结构化类型 (UDT),但遇到了一些问题。 以下是为用例创建类型、表、函数和转换的 SQL 语句。每个语句都执行得很好,但是在尝试执行简单的操作时会发生错误从 t_au
我正在 Cassandra 2.1 中尝试使用 UDT,并且遇到了 InvalidTypeExeception。 我将表格设置为: session.execute("CREATE TYPE myke
我有一个 COM 服务器,其方法当前返回一个整数: [ object, uuid("..."), dual, helpstring("IMyCOMServer Inte
我是一名优秀的程序员,十分优秀!