2011-08-28 44 views

Trả lời

1

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.

2

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

Các vấn đề liên quan