我想在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. 用於XML庫的C++'包裝類'
- 2. 用於CouchDB的C++庫或包裝
- 3. 用於C++ deezer庫的C#包裝器:PLAYLIST_TRACK_NO_RIGHT
- 4. C#用於C++的包裝器,但只編譯爲靜態庫
- 5. Python - 用於GUI庫的跨平臺包裝器?
- 6. 用Cython包裝C++庫
- 7. C庫的Qt包裝
- 8. 在C/C++中創建已包裝庫的Python對象?
- 9. C++ CLI包裝器
- 10. 用於Windows的Python Ogg Vorbis包裝
- 11. 適用於Python的簡易SQLite包裝
- 12. 使用SWIG包裝C/C++庫
- 13. C#包裝到開羅庫
- 14. 用於Python的MEX等價物(C包裝函數)
- 15. 在Python中包裝C庫:C,Cython還是ctypes?
- 16. 是否有用於C++的操作系統API包裝庫?
- 17. 用於在C中查詢已安裝(Debian)軟件包的庫?
- 18. 爲METIS安裝Python包裝器:找不到METIS_DLL共享庫
- 19. 將裝飾器應用於python包中的所有函數
- 20. C#的GnuPG包裝器#
- 21. Python的數據庫包裝類
- 22. 如何使用.win.dll C#包裝器(FatSecret API包裝器)
- 23. Encoding.com的C#包裝器?
- 24. C++的Crossplatform Sqlite3包裝器
- 25. C++/CLI圍繞C靜態庫管理的包裝器
- 26. Java中用於Cloudfoundry VCAP_SERVICE的包裝器?
- 27. 用於APC的Codeigniter靜態包裝器
- 28. 用Python包裝C++代碼(手動)
- 29. 用於DLL的C#包裝器設計P/Invoke
- 30. 用於C++的擴展包裝malloc分配器STL