Seite 1 von 1

kan mir das nhemand endbuggen.......

Verfasst: Freitag 27. Oktober 2006, 18:21
von Costi
ohh man leutz, ich sitzte hier schon seit zwei stunden an mikrigen 70 lines code und komm einfach nicht weiter: das prob ist das ich mich an den "sever" (der in diesen script ist) nicht conneccetn kann

ich poste mal einfach prompt hier alles rein: (sonstige bugs einfach uebersehen..)

Code: Alles auswählen

from sys import exit
import socket
from simplemail import Email #thx, gerold ( :

gui = '''
<html>
<body>
<form action="foobar" method="post"">
from : <input name="from"><br>
to: <input name="to"><br>
subject: <input name="subject"><br>
msg: <textarea name="Frage" rows="7" cols="30">
</textarea><br><br>

<input type="submit" value="Abschicken!">
<input type="reset" value="Abbrechen">

</form>

</body>
</html>

'''


def parse(str):
	param = {}
	for i in str.split("&")[2:-2]: #oder doch 1:-1 ??
		for i2 in i:
			z = z.split("=")
			param[t[1]] = t[2]
	print param #debuging reasons


	
	
def waitforReq(client):
	resp = client.recv(1024)
	return parse(resp)


			
def serveClient(client):
	while 1:	
		client.send(gui)
		param = waitforReq()
		if param["exit"] == "yes":
			sys.exit()
		try:
			Email(
			from_address = para["from"],
			to_address = para["to"],
			subject = para["subject"],
			message = para["msg"]
			).send()
		except:
			error("sry, die naricht koennte nicht gesendet werden<br>die fehlermeldung lautet (nicht erschrecken^^):<br>" + "<fehlermeldung>")#wie hies nochmahl die fehler-var?
	

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind(('', 1234)) 
s.listen(1) 

while 1: 
	client, address = s.accept()
	client.settimeout(9999999999)
	if address != "localhost": #naja sicherhietshalber..
		client.close()
	serveClient(client)
	
	
	
	
	
	

Verfasst: Freitag 27. Oktober 2006, 19:06
von SigMA
Sehe ich das richtig, dass du Client und Server in einem Skript hast?! Wenn ja ist das sehr unklug^^

Desweiteren glaube ich zu wissen, dass der Server in einer Schleife immer wieder horchen muss, ob was angekommen ist. In deinem Skript finde ich jedoch keine solche Schleife

bitte korregiert mich jmd wenn ich falsch liege
SigMA

Verfasst: Freitag 27. Oktober 2006, 19:18
von Costi
Sehe ich das richtig, dass du Client und Server in einem Skript hast?
lol, sicher nicht
Desweiteren glaube ich zu wissen, dass der Server in einer Schleife immer wieder horchen muss, ob was angekommen ist. In deinem Skript finde ich jedoch keine solche Schleife

Code: Alles auswählen

while 1:
    client, address = s.accept()
    client.settimeout(9999999999)
    if address != "localhost": #naja sicherhietshalber..
        client.close()
    serveClient(client)
wobei man bei einen client eigentlich keine schleife braucht


ps: client soll übrigens ne .hta app sein

edit:
muss mich korrigierem (es gibt nichts schlimmeres als falsche docs):
wobei man bei einen client eigentlich keine schleife braucht [/quote
das trifft bei http nicht zu, weil immer wieder eine neue verbindung aufgebaut wird!

Verfasst: Samstag 28. Oktober 2006, 10:25
von Costi
ahhh ok, ich habs: ich hab vergessen einen http "string terminator" (schliesung der verbindung wie in ftp?) einzubaun, deswegen hat mein browser immer bis zum timeout geladen