Zuhören CocoaASyncSocket auf dem iPhone empfangen Verbindung aber neue Socket-Aufruf nicht delegieren

StackOverflow https://stackoverflow.com/questions/4230191

  •  26-09-2019
  •  | 
  •  

Frage

Ich versuche, durch Angabe von IPs grundlegende Botschaft pasing zwischen zwei Geräten zu implementieren. Wenn ein Gerät seine Abhörsocket wie folgt zu hören sagt:

UInt16 port = 59647;
NSError *err = nil;
[socket acceptOnPort:port error:&err];

Der didAcceptNewSocket Delegierte richtig genannt, und sollte eine neue Buchse zum Anschluss IP zurückzukehren: Port. Soweit ich sagen kann, es dies tut, sollte jedoch die neue Socket sein dann didConnectToHost Aufruf, die soweit ich dies nicht der Fall sagen kann.

didConnectToHost korrekt umgesetzt wird, wie die Vorrichtung, die die Verbindung mit dem Sockel löst nennt es richtig, nachdem die Verbindung hergestellt wurde.

Ich tue alles in didAcceptNewSocket nicht abgesehen von einem paar NSLogs und Einstellen des alten Abhörsocket auf den neuen (als nicht nach Bedarf und es vor zu einer anderen Variablen zugewiesen hat, nichts ändern, noch sollte it).

Was könnte meine neue Buchse auf der Listening-Seite nicht nennt diese Delegierten machen?

War es hilfreich?

Lösung

Da Sie mit einem Client und einem Server zu tun haben, ist es wichtig, dass nur der Kunde zu erkennen, die socket:didConnectToHost:port: Delegatmethode aufrufen, wie es der Kunde, der mit einem Host verbunden ist (nicht umgekehrt).

Auf dem Server, die socket:didAcceptNewSocket: Delegatmethode mit dem Abhörsocket als erstes Argument aufgerufen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top