Frage von PythonFrage, 29

Wie kann ich einen Globalen Python-Socket Chat erstellen?

Hallo. Ich wolle Fragen ob sich einer mit Python sockets auskennt? Ich wolle einen Art globalen Chat schreiben bin allerdings auf das Problem gestoßen ,dass das nur im eigenen Netzwerk funktioiert. Ich habe schon Ports beim Rooter freigeschaltet und die Windows Firewall deaktiviert, aber die Nachricht kommt nicht beim Server an. Was kann ich tun?

Antwort
von HermannMuenchen, 18

Bei einer Programmierfrage ist es ratsam, dass man den Code, den man bereits geschrieben hat, gleich in die Frage mit einbaut. Damit lassen sich Fehler leichter (bzw. überhaupt) finden. Andernfalls wäre es nur eine nicht sehr zielführende Raterei.

Kommentar von PythonFrage ,

Sorry das Pfeil runter war außversehen.

Keine ahnung wie man den wegkriegt. xD

Antwort
von LifeArtist1, 14

Also bei mir funktionieren die Skripts genau so:

import socket
import time

UDP_PORT = 3000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

Server_IP = "<XXX.XXX.XXX.XXX>" #Rooter_IP name = "Test Erfolgreich" name = name.encode() time.sleep(2) try: sock.sendto(name, (Server_IP, UDP_PORT)) print ("1. Gut gegangen") except: print("1. Gescheitert")
import socket
import time

host = "" print (socket.gethostname()) print (host) Server_Port = 3000
Verbindung = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Verbindung.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) Verbindung.bind((host, Server_Port))
print("Serveradresse(IP): ",host)
datei, adresse = Verbindung.recvfrom(3000) datei = datei.decode() print(datei)

Mache ich die Port Freigabe wieder aus, funktionierts nicht mehr. Hast du auch alles richtig eingestellt z.B protokol auf UDP usw ?

Regards,

Life

Kommentar von PythonFrage ,

Auch außerhalb des Netzwerkes.

Du hast den Text also nicht verändert und die RooterIP bei den Xen

eingetragen. Naja finde den Fehler bei mir nicht. :(

Aber danke.

Kommentar von LifeArtist1 ,

Ja, mh wenn deine Routereinstellungen richtig sind weiß ich auch nichts mehr.

Antwort
von PythonFrage, 13

Danke für den Hinweis.

Hier sind die Codes:




Server_Sys:

import socket
import time
host = ""
print (socket.gethostname())
print (host)
Server_Port = 3000

Verbindung = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)

Verbindung.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
Verbindung.bind((host, Server_Port))

print("Serveradresse(IP): ",host)



datei, adresse = Verbindung.recvfrom(3000)
datei = datei.decode()
print(datei)





Client(Benutzer):

import socket
import time

UDP_PORT = 3000

sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)



Server_IP = "123.123.123.123"   #Rooter_IP
name = "Test Erfolgreich"
name = name.encode()
time.sleep(2)
try:
sock.sendto(name, (Server_IP, UDP_PORT))
print ("1. Gut gegangen")
except:
print("1. Gescheitert")


Das ist zwar nicht der Chat den ich zum laufen bringen will,

sondern zwei extra Programme die

auf den selben Prinzip aufbauen und

alle Internet bezüglichen Teile auch beinhalten.

Hier muss der Server wenn es klappt am Ende

"Test Erfolgreich ausgeben".

Ich musste die IP leider abändern aber ich kann nicht

meine IP(Rooter_IP) in einen öffentliches Forum schreiben.

Ich hoffe das hilft.  :)



Keine passende Antwort gefunden?

Fragen Sie die Community