Damit kommt zwar die meldung aber stürtz immer noch ab:
Code: Alles auswählen
if socket.error(10054):
print "Es hat einer eine Verbindung getrennt."
Code: Alles auswählen
if socket.error(10054):
print "Es hat einer eine Verbindung getrennt."
Ok, Du willst uns nicht antworten.coolerj hat geschrieben:Ok ihr wollt mir nicht helfen sagst doch gleich.
Code: Alles auswählen
try:
# was auch immer Du machst
except socket.error as error:
print error
Code: Alles auswählen
import socket
import shutil
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 50000))
s.listen(1)
try:
while True:
komm, addr = s.accept()
while True:
data = komm.recv(1024)
if not data:
komm.close()
break
#print "[%s] %s" % (addr[0], data)
array = data.split()
datei = "log.txt";
if array[0] == "/kill":
print "[%s] hat die Funktion 'kill' aufgerufen" % (addr[0])
files = open(datei,"a")
files.write("\n[%s] hat die Funktion 'kill' aufgerufen\n" % (addr[0]))
files.write("[%s]" % (data))
files.close()
if array[0] == "/set":
print "[%s] hat die Funktion 'set' aufgerufen" % (addr[0])
files = open(datei,"a")
files.write("\n[%s] hat die Funktion 'set' aufgerufen\n" % (addr[0]))
files.write("[%s]" % (data))
files.close()
if array[0] == "/move":
print "[%s] hat die Funktion 'move' aufgerufen" % (addr[0])
files = open(datei,"a")
files.write("\n[%s] hat die Funktion 'move' aufgerufen\n" % (addr[0]))
files.write("[%s]" % (data))
files.close()
if array[0] == "/archiv":
shutil.move(datei, "./archiv/%s-log.txt" % (array[1]))
if socket.error(10054):
print "Es hat einer eine Verbindung getrennt."
except socket.error as error:
print error
finally:
s.close()
Code: Alles auswählen
#!/usr/bin/env python
#THIS IS ONLY AN EXAMPLE CODE
# Server
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
host = '' # Auf dem server kann man das leer lassen
#~ port = int(sys.argv[1])
port = 12345
s.bind((host, port))
print "===Server gestartet==="
while True:
data,addr = s.recvfrom(1024)
print "Got data ==>" + data
s.close()
Code: Alles auswählen
#!/usr/bin/env python
#THIS IS ONLY AN EXAMPLE CODE
# Client
import socket
# Socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#~ host = sys.argv[1]
#~ port = int(sys.argv[2])
host = 'localhost'
port = 12345
s.sendto("Client connected",(host, port))
print "====Client gestartet==="
v = ''
t = ''
while True:
input = raw_input("Was soll ich senden? ")
s.sendto(input,(host, port))
s.close()
Code: Alles auswählen
def handle_cmd(filename, sender, data, cmd):
message = u"[{0}] hat die Funktion '{1}' aufgerufen".format(sender, cmd)
with open(filename, "a") as outfile:
outfile.write(message)
outfile.write(u"[{0}]".format(data))
print message
def handle_archiv(filename, sender, data, cmd):
shutil.move(datei, r"./archiv/%s-log.txt".format(data.split()[1]))
def listen():
"""
lagere alle Netzwerkkommunikation hier rein
"""
commands = {
"/kill": handle_cmd,
"/set": handle_cmd,
"/move": handle_cmd,
"/archiv": handle_archiv
}
filename = r"was auch immer"
# Stelle an der sonst diese if-Kaskade auftaucht:
commands[array[0]](filename, addr[0], data, array[0])
# und weiter
Hatte ich jetzt auf die schnelle keine lust . hab das mit den sockets vor ein paar jahren mal gemacht und konnte mich nicht mehr ganz dran erinnernEyDu hat geschrieben:Nicht nur das. Du solltest vielleicht noch einmal die Wikipedia-Artikel dazu lesenXXLTomate hat geschrieben:*ich hoff ich habs nicht verwechselt
Nichts für ungut, aber vielleicht sollte man dann lieber nicht posten, denn das was dort steht ist teilweise so falsch, dass man hofft dass das keiner ernst nimmt.XXLTomate hat geschrieben:Hatte ich jetzt auf die schnelle keine lust . hab das mit den sockets vor ein paar jahren mal gemacht und konnte mich nicht mehr ganz dran erinnern
lol was ist daran so falsch?Leonidas hat geschrieben:Nichts für ungut, aber vielleicht sollte man dann lieber nicht posten, denn das was dort steht ist teilweise so falsch, dass man hofft dass das keiner ernst nimmt.XXLTomate hat geschrieben:Hatte ich jetzt auf die schnelle keine lust . hab das mit den sockets vor ein paar jahren mal gemacht und konnte mich nicht mehr ganz dran erinnern
Und schon gar kein `while(1)`Rebecca hat geschrieben:Und benutze bitte kein while 1.
Code: Alles auswählen
import socket
import shutil
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 50000))
s.listen(1)
try:
while True:
komm, addr = s.accept()
while True:
data = komm.recv(1024)
if not data:
komm.close()
break
#print "[%s] %s" % (addr[0], data)
array = data.split()
datei = "log.txt";
if array[0] == "/kill":
print "[%s] hat die Funktion 'kill' aufgerufen" % (addr[0])
files = open(datei,"a")
files.write("\n[%s] hat die Funktion 'kill' aufgerufen\n" % (addr[0]))
files.write("[%s]" % (data))
files.close()
if array[0] == "/set":
print "[%s] hat die Funktion 'set' aufgerufen" % (addr[0])
files = open(datei,"a")
files.write("\n[%s] hat die Funktion 'set' aufgerufen\n" % (addr[0]))
files.write("[%s]" % (data))
files.close()
if array[0] == "/move":
print "[%s] hat die Funktion 'move' aufgerufen" % (addr[0])
files = open(datei,"a")
files.write("\n[%s] hat die Funktion 'move' aufgerufen\n" % (addr[0]))
files.write("[%s]" % (data))
files.close()
if array[0] == "/archiv":
shutil.move(datei, "./archiv/%s-log.txt" % (array[1]))
except socket.error as error:
if socket.error(10054):
print "Es hat einer eine Verbindung getrennt."
finally:
s.close()
Ich jetzt mich auch verarscht fühle...coolerj hat geschrieben:Wollt ihr mich Verarschen ich jetzt den block in der Schleife getan aber dann geht garnichts mehr
Was andere mit Ihren Clients machen kann Dir ja egal sein - das entscheidene ist das Server-Protokoll! Also kannst Du das quasi nicht beeinflussen, sehe ich das richtig?coolerj hat geschrieben:Ok weil ich mit mehreren das mache und die mit sokets am client arbeiten.