2016-04-18 7 views
-3

Ich habe versucht, Tcp-Server über 4g mobilen Hotspot zu verbinden und ein Problem gefunden. Wenn ich versuchte, eine Verbindung zu einem nicht vorhandenen Server herzustellen, gibt die Verbindungsfunktion immer noch null zurück und einige Sekunden später wurde sie geschlossen. Es sieht wie eine asynchrone Verbindung aus. Wer hat dieses Problem? Jeder Hilfe Kommentar geschätzt. Vielen Dank.C/C++ Tcp über mobile Hotspot

+1

Bitte zeigen Sie den Code, wo Sie den Socket erstellen, und führen Sie die "connect()". Zeigen Sie auch alle "fcntl()" -Aufrufe an, die Sie für den Socket-Deskriptor ausgeführt haben. – TonyB

+0

Klingt vielleicht, dass Ihr 4g Provider eine Art Proxy benutzt? In jedem Fall müssen Sie das Verhalten wahrscheinlich genauso behandeln wie jede andere TCP-Trennung, die vom Server initiiert wird. –

+0

Danke für die Antwort. Der Code funktioniert auf normale Weise gut und das hängt nicht mit meinem Code zusammen. nur ausgelöst, wenn ich über Hotspot (iPhone) eine Verbindung herstelle. @tonyb – xmpolaris

Antwort

0

Es ist wahrscheinlich aufgrund der Art, wie der mobile Hotspot NAT (Network Address Translation) implementiert. NAT wird implementiert, indem zwei Verbindungen (eingehende und ausgehende) hergestellt und Daten zwischen den beiden weitergeleitet werden. Es ist möglich, dass Ihr mobiler Hotspot zuerst Ihre Verbindung akzeptiert und dann versucht, die ausgehende Verbindung herzustellen. NAT-Operation ist in der Regel transparent, aber es ist abhängig von der Implementierung.