2009-10-20 5 views
6

Python과 Twisted를 사용하여 간단한 TCP 서버를 구성하고자합니다.뒤틀린 : 푸시 프로듀서 예제가있는 tcp 서버?

서버가 시작되고 연결을 기다립니다. 이미 클라이언트가 아닌 비 파이썬 응용 프로그램이 있습니다. 연결되면 서버는 일정한 간격 (예 : 1 초)으로 데이터를 보내기 시작합니다.

서버가 정적 파일 (한 번에 한 레코드)에서 데이터를 읽으면이 부분을 알아낼 수 있어야합니다.

일단 클라이언트가 연결되면 푸시 생성자를 사용하여 데이터를 푸시한다고 가정합니다.

공장이 꼬인 상태의 간단한 tcp 서버가 있는데 connectionMade/dataReceived 등등에 반응 할 수 있지만 그럴 수는 없지만 푸시 생성자을 연결하는 방법은 입니다.

누구나 tcp 서버가있는 푸시 생성자가 뒤틀린 것으로 보이는 모든 사례를 알고 있습니까?

thedata = ''' 
Questa mattina 
mi son svegliato 
o bella ciao, bella ciao, 
bella ciao, ciao, ciao 
questa mattina 
mi son svegliato 
ho trovato l'invasor! 
'''.splitlines(True) 

class Push(protocol.Protocol): 
    """This is just about the simplest possible protocol""" 
    def connectionMade(self): 
     for line in thedata: 
      if not line or line.isspace(): 
      continue 
      self.transport.write(line) 
      time.sleep(1.0) 
     self.transport.loseConnection() 

이 하드 코딩 된 데이터를 가지고 있지만, 당신이 파일의 값을 읽어하는 대신 문제가되지 않습니다 말 : 같은 단순한 일에 대해 어떻게

답변

2

. 이 지나치게 단순한 "푸시 서버"의 잘못된 점을 알려 주시면 더 나은 도움을 제공 할 수 있습니다. -)

+0

+1 좋았어, 나는 그걸 잘못 본 것이 없으므로 나는 그 예를 따르겠다. 나는 꼬인 문서를 읽고 있었고 TCP 서버로 푸시 프로듀서의 예를보기 위해 인터넷 검색을하고 있었기 때문에 물었다.하지만 내 목적에 맞으면 네가 제공 한 예제가 충분하다. (예, 필자는 그렇지 않다. 문제가 ...) – stefanB

+0

@stefanB, OK, 문제가 생겼을 때 (예 : 원하지 않는 방식으로 서버를 잠자는 호출이있을 경우) 질문을 편집하고 여기에 의견을 추가하여 Stack Overflow를 통해 자동으로 알고 ;-) 그리고 우리는 무엇을 할 수 있는지 알게 될 것입니다! -) –

+0

다음 5 분을 말하면 connectionMade()에 앉아 계속 클라이언트에 데이터를 보내면 다른 이벤트가 발생하지 않을 것이라고 생각했습니다. .하지만 무슨 일이 일어날 지 알 것입니다. (얼마나 많은 시간을 가지고 플레이해야하는지에 따라 달라집니다.) – stefanB

4

Here은 푸시 프로듀서의 완전한 예입니다. 예를 들어 트위스트 된 svn에 추가되었습니다.