Einfacher Chat

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Server7637847
User
Beiträge: 1
Registriert: Freitag 10. Mai 2013, 18:48

Hi,
wollte mal fragen was man inn Python alles kapieren muss um einen "einfachen" Chat zu programmieren.
Habe ein kleines fake programm geschrieben ohne server also nur mit sich selbst.

Code: Alles auswählen

ja = float(raw_input("Enter IP:"))
if ja == 123:
    print "Your IP is right"
    a = float(raw_input ('Enter security IP:'))
    if a == 321:
        print "You have connected with the server"
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
        str(raw_input('Send:'))
    else:
        print "ERROR404"
        print "please start the app new"
        print "please press enter to close"
        raw_input()        
else:
    print "ERROR404"
    print "please start the app new"
    print "please press enter to close"
    raw_input()


Fragen:
Wie programmiere ich einen Server?
Was brauche ich noch in meinem Chat?

MfG
Zuletzt geändert von Anonymous am Samstag 11. Mai 2013, 09:25, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Um einen einfachen Chat zu programmieren brauchst du das Modul "socket". Mit diesem kannst du dich z.B. im TCP/IP Netz verbinden.
Wie du dir vorstellen kannst, braucht ein Chat (Verbindung) zwei Personen bzw. Endungen, diese werden Server und Client genannt.

Der Server bekommt die IP vom Start PC und einen beliebigen Port, nun wird er so programmiert, dass er auf eingehende Verbindungen (Client) auf diesem Port horcht. Wenn eine Verbindung eingegangen ist, wartet er auf eine Nachricht oder sendet selber eine Nachricht.

Der Client wird so programmiert, dass er versucht sich mit einem Server in Verbindung zu setzen und dann Nachrichten senden/empfangen kann.

Server/Client Tut:
http://www.kellbot.com/2010/02/tutorial ... in-python/

PS:
Du kannst Server und Client auf dem gleichen PC starten und mit dir selber Chatten.
BlackJack

@Server7637847: Erst einmal sollte man die Python-Grundlagen beherrschen. Also die Grunddatentypen, eingebaute Funktionen, Kontrollstrukturen. Wenn man sich den Quelltext anschaut, der absolut sinnfrei zu sein scheint, musst Du da noch ein bischen lernen. Arbeite mal das Tutorial in der Python-Dokumentation durch. Learn Python The Hard Way wird für Programmieranfänger auch oft empfohlen. (Nicht vom Titel verwirren lassen :-))

Für einen Chat musst Du Dich dann in irgend einer Weise mit Kommunikation über das Netz auseinander setzen. Zum Beispiel Socket-Programmierung, die auf den zweiten Blick nicht so einfach ist, wie man vielleicht denkt, weil es einige Fallstricke gibt. Oder mit dem `asynchat`-Modul aus der Standardbibliothek. Oder mit einem RPC-Mechanismus wie XML-RPC, Json-RPC, oder Python Remote Objects (Pyro).
BlackJack

@Dami123: Das Tutorial taugt nicht viel. Mal davon abgesehen dass der Autor selber zugibt kein Python-Experte zu sein und sowas hier schreibt:

Code: Alles auswählen

serv.bind((ADDR))    #the double parens are to create a tuple with one element
hat das Client-Programm genau einen der Fehler den Anfänger gerne machen: Es geht davon aus, dass mit einem `recv()`-Aufruf ganz bestimmt alles gesendete gelesen worden ist (solange es die Puffergrösse nicht überschreitet). Damit hat er auch nicht die nötige Ahnung von Socket-Programmierung um ein Tutorial zu schreiben.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Soweit ich mich erinnere hat mir damals auch nur die Erklärung weitergeholfen.
Funktionierende Socket Beispiele gibt es im Netz genug, nur sind nicht alle Anfänger freundlich erklärt.
Antworten