2016-07-13 5 views
0

Ich versuche, Daten von einer Software auf eine andere auf dem gleichen PC zu senden. Die Kodierung in der früheren s/w erfolgt in Python. Ich mache das:Kann Sockets in Python ohne Internetzugang verwendet werden

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.sendto("msg,Hi!", ("127.0.0.1", 12345)) 

Dies funktioniert gut, wenn ich Internetzugang (AF_INET) habe. Dies ist jedoch nur ein Beispielcode und ich muss dieses Stück in eine andere Anwendung integrieren, in der ich keinen Internetzugang habe und AF_INET nicht funktionieren würde. Gibt es einen möglichen Ersatz dafür?

Ich habe bereits AF_UNIX und AF_LOCAL versucht, aber keiner von ihnen funktioniert. Ich muss UDP verwenden.

+0

Welches Betriebssystem verwenden Sie? Was passiert, wenn Sie 127.0.0.1 pingen, wenn das Internet nicht verbunden ist? – cdarke

Antwort

4

AF_INET hat nichts mit dem INTERNET zu tun. Es bedeutet nur IP-basierte Kommunikation. Sie können es auf demselben Computer oder auf mehreren Computern tun. 127.0.0.1 bezieht sich auf Local-Host-IP, d. H. Meine eigene IP. Jeder Unix/Linux-Rechner hat dieselbe lokale IP-Adresse.

Also ja, dieser Code funktioniert ohne Internetzugang.

+0

Danke für Ihre Antwort. Aber ich habe das ohne Internet versucht. Ich kann die Nachricht auf der anderen Anwendung nur sehen, wenn mein Laptop mit dem Internet verbunden ist. Ohne Internet, obwohl ich keinen Fehler bekomme, sehe ich die Nachricht in der anderen App nicht. Können Sie bitte einen anderen Weg vorschlagen? –

+0

Ist die andere Anwendung auf 127.0.0.1 "zuhören"? Oder nur auf einer bestimmten IP? Bitte führen Sie "netstat-plnu" –

+0

Es hört zu. Ich weiß das, weil ich Daten von meinem Telefon an diese Anwendung auf dieser IP und Port senden kann. Die App empfängt Daten von meinem Telefon mit und ohne Internet. Aber wenn ich das gleiche von meinem ersten s/w versuche, funktioniert es nicht ohne Internet –

0

Natürlich, Sie benötigen keine Internet-Konzepte bei der Verwendung von Sockets. Sie können ein Ad-hoc-Netzwerk verwenden, um ein entspanntes Netzwerk zu erstellen, und ein einfaches TCP oder UDP Socket-Skript ausführen, um Dinge zu übertragen, die Sie mögen.

Sie können infact verwenden Multicasting oder Rundfunk Systeme Daten auf verschiedenen Geräten innerhalb des Ad-hoc-Netzwerk zu teilen.

Verwandte Themen