Gọi reactor.listenTCP
và reactor.connectTCP
. Bạn có thể có nhiều loại kết nối khác nhau - máy chủ hoặc máy khách - như bạn muốn.
Ví dụ:
from twisted.internet import protocol, reactor
from twisted.protocols import basic
class SomeServerProtocol(basic.LineReceiver):
def lineReceived(self, line):
host, port = line.split()
port = int(port)
factory = protocol.ClientFactory()
factory.protocol = SomeClientProtocol
reactor.connectTCP(host, port, factory)
class SomeClientProtocol(basic.LineReceiver):
def connectionMade(self):
self.sendLine("Hello!")
self.transport.loseConnection()
def main():
import sys
from twisted.python import log
log.startLogging(sys.stdout)
factory = protocol.ServerFactory()
factory.protocol = SomeServerProtocol
reactor.listenTCP(12345, factory)
reactor.run()
if __name__ == '__main__':
main()
Nguồn
2010-07-18 14:43:30
um .. Tôi không nhận được nó như thế nào để sử dụng cùng mã ở trên để kết nối trên máy chủ nghe, bạn có thể soi sáng cho tôi xin vui lòng? – Marconi
cũng có, bạn có bất kỳ ý tưởng làm thế nào tôi có thể sử dụng này kết hợp với các tiêu chuẩn? Nói, trong khi máy chủ/khách hàng có thể chấp nhận/kết nối trên nền tôi cũng muốn có thể nhập lệnh. – Marconi
Đoạn mã trên thực hiện kết nối gửi đi. Đó là những gì connectTCP trong lineReceived thực hiện. Điều này khác với những gì bạn muốn? Ngoài ra, để sử dụng nó với stdio, chỉ cần tạo một ví dụ twisted.internet.stdio.StandardIO tại một số điểm. Giống như listenTCP và connectTCP, đó là nguồn sự kiện mà bạn có thể tạo và có cùng tồn tại với bất kỳ nguồn sự kiện nào khác từ Twisted. –