Quiero usar el UDT library en Python, así que necesito un contenedor. Encontré este: pyudt, pero no sé exactamente cómo usar esto para enviar archivos de un igual a otro. ¿Alguien puede señalarme en la dirección correcta?Contenedor de Python para la biblioteca UDT C++
Respuesta
Puedes probar udt_py fork. Incluye una muestra recvfile.py
ahora y puede recuperar archivos del daemon sendfile
en el directorio app
de udt.
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
- 1. Crear un contenedor para una biblioteca C en Python
- 2. Clase/biblioteca de contenedor para C
- 3. Hacer un contenedor Objective-C para una biblioteca en C++
- 4. Escribir un contenedor C++ para una biblioteca C
- 5. contenedor observable para C++
- 6. Contenedor C# para objetos
- 7. Cargar biblioteca del contenedor
- 8. ¿Cómo se propagan las excepciones de C++ a Python en una biblioteca de contenedor SWIG?
- 9. Contenedor de clase C++/CLI para biblioteca c - devoluciones de llamada
- 10. ¿Hay un contenedor .NET/C# para SQLite?
- 11. contenedor COI para Objective-C
- 12. Biblioteca rápida de reproducción de vectores para C o Python
- 13. Enlazar una biblioteca de Python TO C
- 14. Contenedor C++ a C usando SWIG (para FLTK)
- 15. Recomendación para la biblioteca de matrices C#
- 16. Biblioteca de Python para Amazon MWS
- 17. C++ "paso de" contenedor
- 18. Biblioteca de Python para la programación de trabajos, ssh
- 19. Boost Python: contenedor polimórfico?
- 20. Biblioteca como fakeweb para Python
- 21. biblioteca C++ para XMLRPC
- 22. Ruta de la biblioteca Python
- 23. Biblioteca P2P para C++
- 24. ¿La mejor biblioteca Python GIS?
- 25. Usar la clase de Python como contenedor de datos
- 26. ¿Planes de biblioteca para C++ 0x?
- 27. Biblioteca financiera básica para Python
- 28. C++ diseño de contenedor de registro
- 29. Biblioteca GetOpt para C#
- 30. Biblioteca JSON para C#