Tôi muốn sử dụng UDT library bằng Python, vì vậy tôi cần một trình bao bọc. Tôi tìm thấy cái này: pyudt, nhưng tôi không biết chính xác cách sử dụng này để gửi tệp từ một peer đến peer. Ai đó có thể chỉ cho tôi phương hướng đúng không?Trình bao bọc Python cho thư viện UDT C++
Trả lời
Bạn có thể dùng thử udt_py fork của mình. Nó bao gồm một mẫu recvfile.py
ngay bây giờ và có thể truy xuất tệp từ daemon sendfile
trong thư mục app
của udt.
sau bao nhiêu lần tôi đã tìm thấy câu hỏi này và giải pháp của nó:
Các bước để cài đặt pyudt-0.1a là:
cài đặt: libboost-python1.46-dev hoặc tương đương (ví dụ, trong linux-ubuntu12.04 nó trong reps.)
cài đặt udt.h (từ: http://sourceforge.net/projects/udt/) vào một thư mục hệ thống,
HOẶC
(đặt các tập tin udt.h trong đường dẫn tương tự như các tập tin pyudt-0.1a, và sau đó thay đổi một dòng của "pyudt.cpp", từ:
#include <udt.h>
để :
#include "udt.h"
).
- cập nhật các phiên bản của thư viện boost_python, trong "setup.py" với một bạn sử dụng,
Eg .:
... libraries=['udt', 'boost_python-py27'])
- thay đổi dòng sau (s) trong "pyudt.cpp":
bạn phải sửa lỗi, thay đổi từ:
int r = UDT::send(_sock, data.c_str(), data.length(), 0);
tới:
int r = UDT::send(_sock, data.c_str(), data.length()+1, 0);
vì nhân vật "\ 0" có nghĩa là kết thúc chuỗi cũng phải được gửi, nếu không rác sẽ được nối vào chuỗi của bạn.
tùy chọn, bạn có thể lựa chọn giữa:
_sock = UDT::socket(AF_INET, SOCK_DGRAM, 0); --» default
hay:
_sock = UDT::socket(AF_INET, SOCK_STREAM, 0); --» optional
- cuối cùng, chạy,
trong thư mục tương ứng:
python2.7 ./setup.py build
sudo python2.7 ./setup.py install
OR, (nếu bạn không có quyền admin để cài đặt nó cho tất cả những người sử dụng, và chỉ muốn thử nó cho bạn:
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
)
Sau đó, các mã cho một đơn giản khách hàng có thể là:
import pyudt
socket = pyudt.pyudt_socket()
socket.connect(("127.0.0.1", 7000))
socket.send("hello_world!")
và nó hoạt động, nó nói chuyện với máy chủ cpp của tôi!
thông báo: nếu bạn cần thêm sự giúp đỡ bạn có thể viết trong giao diện điều khiển của python:
import pyudt
dir(pyudt.pyudt_socket) # to list the available functions
help(pyudt) # to get more help
PS. các tệp được tạo bằng hướng dẫn cài đặt này là: /usr/local/lib/python2.7/dist-packages/pyudt.so và /usr/local/lib/python2.7/dist-packages/pyudt-0.1a. egg-info
- 1. authorize.net Trình bao bọc/thư viện C#
- 2. C Trình bao bọc cho C++
- 3. Thư viện trình bao bọc Cocoa/Objective-C tốt nhất cho SQLite trên iPhone
- 4. Trình bao bọc C++ dành cho ncurses?
- 5. HOWTO: Viết trình bao bọc API Python?
- 6. Có trình bao bọc .NET/C# cho SQLite không?
- 7. Trình bao bọc C++ để tăng/C++ 11
- 8. Có thư viện trình bao bọc hoàn chỉnh user32.dll có sẵn cho .NET không?
- 9. UTF-8 tới các thư viện trình bao bọc API UTF-16 cho Windows?
- 10. Trình bao bọc đối tượng iOS-C cho Google Documents
- 11. Chức năng trình bao bọc cho IndexedDB
- 12. C# - trình bao bọc tham chiếu cho loại giá trị
- 13. Trình bao bọc C# cho các đối tượng
- 14. Trình bao bọc C# cho kernel32.dll API
- 15. Trình bao bọc OO C++ tốt cho sqlite
- 16. C++ thiết kế trình bao bọc ghi nhật ký
- 17. . Trình bao bọc mạng cho API Perforce?
- 18. Dịch vụ thanh toán trực tuyến với thư viện/trình bao bọc NodeJS tốt nhất
- 19. Làm cách nào để viết các trình bao bọc ngôn ngữ khác nhau cho cùng một thư viện?
- 20. Tạo một trình bao bọc Python cho thuật toán của tôi sử dụng Opencv 2.3
- 21. Viết trình bao bọc dòng lệnh di động trong C
- 22. Sử dụng CXXI để bọc các thư viện C++
- 23. Bao gồm thư viện chuẩn C++
- 24. Trình bao bọc C++/CLI cho native C++ để sử dụng làm tham chiếu trong C#
- 25. Viết trình bao bọc bảng điều khiển trong C#?
- 26. Cân nhắc về trình bao bọc setuid
- 27. Thư viện trình kết nối C/C++ tốt cho PostgreSQL
- 28. Có trình bao bọc OpenCL tốt cho Ruby không?
- 29. Trình bao bọc C++ cho các chức năng cụ thể của posix và linux
- 30. Thư viện UUID cho C?