console-chat

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Code: Alles auswählen

OpenConsole()                                  
ConsoleTitle ("Client") 
ConsoleLocate (13,12)                          
Print ("Please enter your name:   ")          
name$=Input()                                  
    
ClearConsole() 
Print ("Chatversuch in console") 
InitNetwork() 
ConnectionID = OpenNetworkConnection("217.83.60.88", 600) 
If ConnectionID=0 
  PrintN ("Verbindung wurde nicht hergestellt ") 
Else 
  PrintN ("Verbindung wurde hergestellt ") 
EndIf 
    
*TCPBuffer = AllocateMemory(1024) 
Repeat 
  PrintN ("") 
  
  NCE = NetworkClientEvent(ConnectionID)
  If NCE = 2 Or NCE = 5 
    TCPBufferLength = ReceiveNetworkData(ConnectionID, *TCPBuffer, 1024) 
    PrintN("Empfangen: "+PeekS(*TCPBuffer,TCPBufferLength)) 
  EndIf 
  Inkey$ = Inkey() 
  If Asc(Inkey$) <> 13 
    nachricht$ + Left(Inkey$,1)
    Print(Left(Inkey$,1))
  Else
    If nachricht$ <> "quit"
      SendNetworkString(ConnectionID, name$ +" : "+nachricht$)
      nachricht$ = "" 
    Else
      quit = 1
    EndIf
  EndIf 
  Delay(10) 
Until quit
    
FreeMemory(*TCPBuffer) 
  
CloseConsole() 
End
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

hihi...danke...jetzt habs sogar ich kapiert...nach einer stunde durchguggn und lernen :D naja ich musste unten da dieses delay etwas hochschrauben...sonst läuft mir das zu schnell...ich habs auf 200...glaube,naja danke :mrgreen:
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

des find ich mal krass...nur so aus intresse jetzt meine frage

und zwar wenn man schreibt dann immer nur ein buchstabe pro zeile...kann man das net ändan???

und noch was aus intresse,muss dann immer runterscrollen oder geht das auch irgendwie ohne???
Benutzeravatar
ChaOsKid
Beiträge: 66
Registriert: 29.08.2004 15:07
Wohnort: Oktoberfest

Beitrag von ChaOsKid »

hi captain third,

ich hab den code von Deeem2031 mal etwas umgebaut
einen test-server hab ich auch noch reingebaut
hinweis: der server code funktioniert nur mit einem clienten !

Code: Alles auswählen

OpenConsole()                                 
ConsoleTitle ("Client")
ConsoleLocate (13,12)                         
Print ("Please enter your name:   ")         
Name$=Input()                                 
   
ClearConsole()
PrintN("Chatversuch in console")
InitNetwork()
; --server--------------
CreateNetworkServer(600)
; ----------------------
ClientConnectionID = OpenNetworkConnection("127.0.0.1", 600)
If ClientConnectionID=0
  PrintN("Verbindung wurde nicht hergestellt")
  Input()
Else
  PrintN("Verbindung wurde hergestellt")
  *TCPBuffer = AllocateMemory(1024)
  Repeat
    Select NetworkClientEvent(ClientConnectionID)
      Case 2
        TCPBufferLength = ReceiveNetworkData(ClientConnectionID, *TCPBuffer, 1024)
        PrintN("Client/"+PeekS(*TCPBuffer,TCPBufferLength))
    EndSelect
    Inkey$ = Inkey()
    Inkey = Asc(Inkey$)
    Select Inkey
      Case 0
        ;nix machen
      Case 13
        PrintN ("")
        If Nachricht$ <> "quit"
          SendNetworkString(ClientConnectionID, Name$ +" : "+Nachricht$)
          Nachricht$ = ""
        Else
          quit = 1
        EndIf
      Default
        key$ = Left(Inkey$,1)
        Nachricht$ + key$
        Print(key$)
    EndSelect
    ; --server--------------
    Select NetworkServerEvent()
      Case 1
        ServerConnectionID = NetworkClientID()
      Case 2
        TCPBufferLength = ReceiveNetworkData(ServerConnectionID, *TCPBuffer, 1024)
        PrintN("Server/"+PeekS(*TCPBuffer,TCPBufferLength))
      Case 4
        PrintN("Server: Client hat verbindung beendet")
    EndSelect
    ; ----------------------
    Delay(10)
  Until quit
    
  FreeMemory(*TCPBuffer)
EndIf
 
CloseConsole()
End
mfG
Tobi
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

Ich danke euch :D nur noch mal so die frage,gibt es vlt irgendwo ein buch für angänger über pure basic oder so??? würd mich mal intressiern :D
RaVeN99
Beiträge: 310
Registriert: 29.08.2004 15:26
Wohnort: Weiden i.d.OPF
Kontaktdaten:

Beitrag von RaVeN99 »

Buch - Fehlanzeige...
Aber es gibt zu den meisten Themen recht gute Tutorials und Code Beispiele die ebenfalls gut kommentiert sind damit man da das ganze auch versteht... Schau einfach mal auf Robsite und Purearea.net vorbei, da dürftest du fürs erste genügend informationen finden zu den meisten Themen :)
Ein klasse Tutorial mit dem ich den einstieg gewagt habe ist direkt auf der deutschen Purebasic Seite zu finden... Hilft dir auf jedenfall die ersten schritte zu machen :allright:


Happy Coding :)

RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Gibts nicht irgendwo ein altes deutsches Handbuch zu PB? Hat mir eigtl. gut gefallen. habs mir als PDF geladen und dann ausgedruckt
RaVeN99
Beiträge: 310
Registriert: 29.08.2004 15:26
Wohnort: Weiden i.d.OPF
Kontaktdaten:

Beitrag von RaVeN99 »

Das Handbuch liegt meines wissens nach der Topos version bei, aber auch der Boxed Version von PB.
Hab das ding hier rumliegen, aber zum einen ist es gekürzt (weiss nicht ob die PDF auch gekürzt ist), zum anderen wie du sagst auch uralt - einige Befehle dürften so in der Form heute garnicht mehr existieren (zum Beispiel allocatememory). Der riesen nachteil an der sache ist allerdings dass das ganze in meinen Augen nciht viel mehr als eine Befehlsreferenz darstellt. Es werden keine Beispiele geliefert wie man die Befehle im alltag sinnvoll nutzt, und nicht nur in einer kleinen demonstration.
So zum nachschlagen sicherlich okay, aber als wirkliche Hilfe für einsteiger meines erachtens nach ungeeignet. ^^


Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Das Handbuch ist für die Topos-Version, PB 3.20:
http://www.purearea.net/pb/download/Handbuch.zip
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

nur mal so: das handbuch war mein Einstieg, und ich hatte 3.91
zum Glück bin ich auf das Forum hier gestoßen, hab viel gelesen u.A. die History von PB u.s.w. und natürlich hier Beiträge...
Zusammen geht das dann schon
Antworten