2011-08-28 9 views

Respuesta

1

Puedes probar udt_py fork. Incluye una muestra recvfile.py ahora y puede recuperar archivos del daemon sendfile en el directorio app de udt.

2

después de tantos vez que he encontrado esta cuestión y su solución:

Los pasos para instalar pyudt-0.1a son:

  • instalación: libboost-python1.46-dev o equivalente (por ejemplo, en Linux-ubuntu12.04 está en las repeticiones.)

  • instalar udt.h (a partir de: http://sourceforge.net/projects/udt/) en un directorio del sistema,

O
(ponga el fichero udt.h en el mismo camino que los archivos pyudt-0.1A, y luego cambiar una línea del "pyudt.cpp", a partir de:

#include <udt.h> 

a :

#include "udt.h" 

).

  • actualización de la versión de la biblioteca boost_python, en "setup.py" para el que usted está usando ,

ej .:

... libraries=['udt', 'boost_python-py27']) 
  • cambio de la línea siguiente (s) en "pyudt.cpp":

necesidad corregir un error, cambiando de:

int r = UDT::send(_sock, data.c_str(), data.length(), 0); 

a:

int r = UDT::send(_sock, data.c_str(), data.length()+1, 0); 

porque el carácter "\ 0", que significa el final de cadena debe ser enviada también, de otro modo no deseado no se añada a tu cadena

opcionalmente, puede elegir entre:

_sock = UDT::socket(AF_INET, SOCK_DGRAM, 0); --» default 

o:

_sock = UDT::socket(AF_INET, SOCK_STREAM, 0); --» optional 
  • finalmente, ejecutar,

en la carpeta correspondiente:

python2.7 ./setup.py build 
sudo python2.7 ./setup.py install 

O, (si no tiene permisos de administrador para instalarlo para todos los usuarios, y sólo quiero probarlo para usted:

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 

)

A continuación, el código para un simple cliente puede ser:

import pyudt 
socket = pyudt.pyudt_socket() 
socket.connect(("127.0.0.1", 7000)) 
socket.send("hello_world!") 

y funciona, ¡habla con mi servidor cpp!

aviso: si necesita más ayuda que puede escribir en la consola del pitón:

import pyudt 
dir(pyudt.pyudt_socket) # to list the available functions 
help(pyudt)    # to get more help 

PS. los archivos creados con este tutorial de instalación son: /usr/local/lib/python2.7/dist-packages/pyudt.so, y /usr/local/lib/python2.7/dist-packages/pyudt-0.1a. egg-info