Ich beschäftige mich mit dem Erstellen eines Socket-Servers + Client.
Auf lokaler Ebene läuft alles mit multiplen Clienten, die sich einzelnd anmelden, miteinander Chaten und sich einzelnd wieder abmelden können.
Ich habe quasi einen kleinen Chat Room auf lokaler Ebene fertiggestellt.
Jetzt versuche ich die lokale Verbindung öffentlich zu machen, um mich von überall aus anmelden zu können.
Nach vielem Suchen im Netz bin ich auf Folgendes gestoßen:
Code: Alles auswählen
# external_client --> router(external_IP) --> server(local_IP) <-- local_client
Mein abgekürzter Server-Code:
Code: Alles auswählen
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 50505
ADDR = (HOST, PORT)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)
server.listen()
print(f"Server is listening to {ADDR}...")
def start():
while True:
client, address = server.accept()
print(client, address)
start()
Code: Alles auswählen
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('95.90.xxx.xxx', 50505)) # Meine publicIP
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Users\chris\Documents\PyCharm\Networking\Chat_Room\client.py", line 10, in <module>
client.connect(('95.90.225.108', 50505)) # 95.90.225.108
TimeoutError: [WinError 10060] Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat
Process finished with exit code 1