我想在Python中使用UDT library,所以我需要一個包裝器。我發現這一個:pyudt,但我不知道如何使用此從對等發送文件。任何人都可以指引我走向正確的方向嗎?用於UDT C++庫的Python包裝器
5
A
回答
1
您可以試試我的udt_py fork。它現在包含一個樣本recvfile.py
,並且可以從udt的app
目錄中的sendfile
守護程序中檢索文件。
2
這麼多的時間後,我發現這個問題,它的解決方案:
安裝pyudt-0.1A的步驟如下:
安裝: libboost-python1.46-dev的或相當於 (例如,在linux-ubuntu12.04它在代表)。
udt.h(來源:http://sourceforge.net/projects/udt/)安裝到系統目錄下,
OR
(把udt.h文件作爲pyudt-0.1A文件相同的路徑,然後換行 「pyudt.cpp」 的,從:
#include <udt.h>
到:
#include "udt.h"
)。
- 更新版本boost_python庫,在 「setup.py」 給你使用是 的人,
例如:
... libraries=['udt', 'boost_python-py27'])
- 更改以下行(s)in「pyudt.cpp」:
you 必須糾正錯誤,改變由:
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
OR,(如果你沒有管理員權限來安裝它的所有用戶,而只是想試試你:
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
PS。使用此安裝教程創建的文件爲: /usr/local/lib/python2.7/dist-packages/pyudt.so和/usr/local/lib/python2.7/dist-packages/pyudt-0.1a。 egg-info
相關問題
- 1. 包裝用於Python的C++ OpenCV代碼
- 2. 用於XML庫的C++'包裝類'
- 3. 用於CouchDB的C++庫或包裝
- 4. C#用於C++的包裝器,但只編譯爲靜態庫
- 5. 用於C++ deezer庫的C#包裝器:PLAYLIST_TRACK_NO_RIGHT
- 6. 在Mac OSX上編譯用於python包裝的C庫10.8
- 7. authorize.net C#包裝器/庫
- 8. C靜態庫包裝器
- 9. Python - 用於GUI庫的跨平臺包裝器?
- 10. 如何爲python包裝一個C++庫?
- 11. 在Python包裝和用C
- 12. 使用Jni包裝C++庫
- 13. 用Cython包裝C++庫
- 14. Python的顛覆包裝庫
- 15. C#的包裝器
- 16. 創建庫的包裝c#
- 17. C庫的Qt包裝
- 18. 用於C dll的C++/CLI包裝
- 19. 在Python中爲C#庫創建包裝器
- 20. 在C/C++中創建已包裝庫的Python對象?
- 21. C++ Speex到Flac包裝器/庫
- 22. C++ CLI包裝器
- 23. 用於SIMULINK模型的C/C++包裝器
- 24. Reg Jython用於Java的Python包裝
- 25. 用於MySQL配置表的Python包裝
- 26. 用於Windows的Python Ogg Vorbis包裝
- 27. 適用於Python的簡易SQLite包裝
- 28. 使用SWIG包裝C/C++庫
- 29. 用Python包裝C庫,但返回的數組不變
- 30. C#包裝到開羅庫