Socket: Empfangen UND schreiben?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
VoLANo

Hallo,

ich bin grade an einem Projekt am arbeiten, wo Sockets benötigt werden.
Jetzt muss ich über den Socket Daten empfangen und auch senden können.
Leider geht das nicht.
Kann mir da jemand helfen?

Client:

Code: Alles auswählen

s = socket(AF_INET, SOCK_STREAM)
s.connect(("localhost", 8000))
s.send("LOGIN " + nick)
while 1:
    line = s.recv(1024)  ##an der Stelle bricht er ab
    if line!="":
        print line

Server:

Code: Alles auswählen

s = socket(AF_INET, SOCK_STREAM)
s.bind(("", 8000))
s.listen(5)
while 1:
    client, addr = s.accept()
    client.send("Willkommen")
    line = s.recv(1024)

Das wars so im groben. Hoffe, mir kann jemand helfen.
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Bekommst du nicht mal eine Exception? Die Entlosschleife im Client kommt mir doch etwas gewagt vor.
Jan
VoLANo

Hehe das ist ja nur zum Testen.
Wie würdest Du das denn machen, wenn man über den Socket Daten senden und empfangen muss?
VoLANo

Bitte. ich brauche das für mein Praktikum.
Kann mir keiner helfen?
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

VoLANo hat geschrieben:

Code: Alles auswählen

s = socket(AF_INET, SOCK_STREAM)
s.bind(("", 8000))
s.listen(5)
while 1:
    client, addr = s.accept()
    client.send("Willkommen")
    line = s.recv(1024)
Ich würde das s.recv(1024) durch ein client.recv(1024) ersetzen. Außerdem sollte der Server erst lesen ("LOGIN"+nick) und dann sein "Willkommen" schreiben, würde ich denken.

In der Doku zum Modul "socket" gibt es auch ein kleines Beispiel, schau Dir das mal an.

Viel Glück
Jörg
Antworten