Netzwerk? localhost?
Verfasst: Sonntag 5. April 2009, 14:16
Sehr geehrtes Python forum,
Da ich in Netzewrkkommunikation nur sehr wenig erfahrung habe (ich bekomme alles nur über localhost hin) frage ich hier einfach mal nach.
Ich habe dieses Chatprogramm.
Es funktioniert zwar, aber mit diesem komischen Fehler:
, wenn ich das von 2 PC in meinem Netzwerk laufen lasse.
Wie schaffe ich das jetzt, dass es im Internet und nicht nur im heimnetz läuft (brauch ich dafür eine Domain oder geht das mit IP).
Das Programm ist von "Das Python Praxisbuch", wo ich jedoch noch nichts darüber gefunden habe wie ich oben genanntes schaffe.
Ich hoffe auf Antworten,
MfG Robin
Da ich in Netzewrkkommunikation nur sehr wenig erfahrung habe (ich bekomme alles nur über localhost hin) frage ich hier einfach mal nach.
Ich habe dieses Chatprogramm.
Es funktioniert zwar, aber mit diesem komischen Fehler:
, wenn ich das von 2 PC in meinem Netzwerk laufen lasse.
Wie schaffe ich das jetzt, dass es im Internet und nicht nur im heimnetz läuft (brauch ich dafür eine Domain oder geht das mit IP).
Das Programm ist von "Das Python Praxisbuch", wo ich jedoch noch nichts darüber gefunden habe wie ich oben genanntes schaffe.
Ich hoffe auf Antworten,
MfG Robin
Code: Alles auswählen
#!/usr/bin/env python
# twisted_chatserver.py -- A Twisted chat server.
from twisted.internet.protocol import Factory
from twisted.protocols.basic import LineReceiver
from twisted.internet import reactor
class Chat(LineReceiver):
def connectionMade(self):
self.delimiter = '\n'
self.userName = None
self.sendLine(self.factory.prompt)
def lineReceived(self, line):
if self.userName is not None:
# Received a line from a logged in user
self.broadcastLine("<%s>: %s" % (self.userName, line))
else:
# User logging in with username line
if line in self.factory.users:
self.sendLine("Sorry, but %s is already logged in." % (line,))
self.transport.loseConnection()
else:
self.userName = line
self.factory.users[self.userName] = self
self.broadcastLine("%s logged in." %self.userName)
def connectionLost(self, reason):
if self.userName is not None and self.userName in self.factory.users:
del self.factory.users[self.userName]
self.broadcastLine("%s logged out." %self.userName)
def broadcastLine(self, line):
for chatobject in self.factory.users.itervalues():
chatobject.sendLine(line)
factory = Factory()
factory.protocol = Chat
factory.prompt = "Nickname:"
factory.users = {} # Dictionary of (Nickname, Chat object) items.
reactor.listenTCP(7070, factory)
reactor.run()