Alles funktioniert wenn ich es im LAN ausprobiere, doch wenn ich versuche eine Nachricht zum PC meines Freundes zu senden kommt sie nicht an
Die Ports am Router sind geforwarded, und zwar bei mir und bei meinem Freund, doch irgendwie scheint es nicht zu funktionieren
(Anmerkung: Ich verwende die Hamachi-Adresse, und ja mein Programmierstil ist Mist )
Code: Alles auswählen
import socket
import threading
import time
import sys
def ShowProcedure():
time.sleep(3)
sys.exit(True)
class Client():
def __init__(self):
self.PORT = 0
self.IP = 0
self.MainClientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
def Connect(self):
try:
self.MainClientSocket.connect((self.IP, int(self.PORT)))
except:
print "failed to connect to ip"
ShowProcedure()
def Send(self, DATA):
try:
self.MainClientSocket.sendto(DATA, (self.IP, int(self.PORT)))
except:
"failed to send message!"
class Server(threading.Thread):
def __init__(self):
self._BUFFERSIZE_ = 0
self.PORT = 0
self.IP = None
self.ServedData = None
self.PartnerAddr = None
self._RunLoop_ = True
threading.Thread.__init__(self)
self.MainServerSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
def run(self):
try:
self.MainServerSocket.bind((self.IP, int(self.PORT)))
print "Server connected!\n"
except:
print "invalid port!"
time.sleep(3)
sys.exit(True)
while self._RunLoop_ == True:
if self._BUFFERSIZE_ < 1:
self._BUFFERSIZE_ = 256
self.ServedData, self.PartnerAddr = self.MainServerSocket.recvfrom(self._BUFFERSIZE_)
if self.ServedData:
print "%s >> %s\n" % (self.PartnerAddr,self.ServedData)
if not self.ServedData:
print "Chatpartner left\n"
ShowProcedure()
PortInput = str(raw_input("port fuer Server eingeben :"));
print PortInput
try:
int(PortInput)
except:
print "No letters!\n"
ShowProcedure()
ChatRecvServer = Server()
ChatRecvServer.PORT = PortInput
ChatRecvServer.IP = ""
ChatRecvServer.start()
IPInput = str(raw_input(u"geben sie die Hamachi- Addresse des Empfaengers ein :"))
PortInput = str(raw_input("geben sie den Klientenport ein :"))
ChatClientSender = Client()
ChatClientSender.IP = IPInput
ChatClientSender.PORT = PortInput
ChatClientSender.Connect()
while 1:
ClientMessage = raw_input(">>")
ChatClientSender.Send(ClientMessage)