2008-09-16 41 views

Trả lời

63

Ổ cắm mở trong python khá đơn giản. Bạn thực sự chỉ cần một cái gì đó như thế này:

import socket 
sock = socket.socket() 
sock.connect((address, port)) 

và sau đó bạn có thể send()recv() giống như bất kỳ ổ cắm khác

+4

Caveat: '(địa chỉ, cổng)' là một tuple và do đó một đối số duy nhất, không phải là hai đối số! Để rõ ràng người ta có thể viết nó như thế này: 'sock.connect ((địa chỉ, cổng,))' – johndodo

+14

Làm cách nào để thêm dấu phẩy vào cuối sự rõ ràng tăng lên của tuple? – Jack

11

Đối với việc phát triển các chương trình mạng di động của bất kỳ loại bằng Python, Twisted là khá hữu ích. Một trong những lợi ích của nó là cung cấp một lớp thuận tiện trên các API socket mức thấp.

+0

Twisted = overkill –

17

OK, mã này làm việc

s = socket.socket() 
s.connect((ip,port)) 
s.send("my request\r") 
print s.recv(256) 
s.close() 

Đó là khá khó khăn để làm việc mà ra từ các tài liệu mô-đun ổ cắm Python. Vì vậy, tôi sẽ chấp nhận câu trả lời của The.Anti.9.

+0

Để tham khảo trong tương lai, thực tế âm thanh thường là sử dụng tham số lớn hơn cho socket.recv() hơn 256 byte. Tôi thường thấy 4096 được sử dụng. – junkforce

+0

Có, ý tưởng tốt junkforce. Những gì tôi đã thực sự sau khi đã đọc một dòng văn bản, bây giờ tôi đang sử dụng hàm makefile() để đệm dữ liệu nhận được mà làm việc một điều trị. –

+4

Bạn quên kiểm tra giá trị trả lại của việc gửi. –

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