2011-08-28 24 views

risposta

1

Puoi provare il mio udt_py fork. Include ora un campione recvfile.py e può recuperare i file dal demone sendfile nella directory app di udt.

2

dopo tante volta ho trovato questa domanda e la sua soluzione:

la procedura per installare pyudt-0.1A sono:

  • installare: libboost-python1.46-dev o equivalente (per esempio, in linux-ubuntu12.04 è nelle ripetizioni.)

  • installare udt.h (da: http://sourceforge.net/projects/udt/) in una directory di sistema,

O
(mettere il file udt.h nello stesso percorso dei file pyudt-0.1A, e quindi modificare una linea del "pyudt.cpp", da:

#include <udt.h> 

a :

#include "udt.h" 

).

  • aggiornamento la versione della libreria boost_python, in "setup.py" per quello che sei utilizzando,

ad es .:

... libraries=['udt', 'boost_python-py27']) 
  • modificare la riga seguente (s) in "pyudt.cpp":

si must correggere un bug, si passa da:

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

a:

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

perché il carattere "\ 0", che significa la fine della stringa deve essere inviata, altrimenti spazzatura saranno allegati alla tua corda.

opzionalmente, si può scegliere tra:

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

o:

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

nella cartella corrispondente:

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

O, (se non si dispone delle autorizzazioni di amministratore per installarlo per tutti gli utenti, e vogliono solo provare per voi:

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 

)

Poi, il codice per un semplice il cliente può essere:

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

e funziona, parla con il mio server cpp!

avviso: se avete bisogno di ulteriore aiuto è possibile scrivere nella console del pitone:

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

PS. i file creati con questa esercitazione di installazione sono: /usr/local/lib/python2.7/dist-packages/pyudt.so e /usr/local/lib/python2.7/dist-packages/pyudt-0.1a. egg-info