Client - Vorlage

Anfängerfragen zum Programmieren mit PureBasic.
Jume

Client - Vorlage

Beitrag von Jume »

Guten Tag liebe Leute,

bin ein blutiger Anfänger und hätte ein paar Fragen zu dem Clienten. Für die, die es nicht wissen:

Das ist aus dem Archiv auf Purearea.net.

Code: Alles auswählen

InitNetwork() 
If ExamineIPAddresses() 
  IP.l = NextIPAddress() 
EndIf 
*buffer = AllocateMemory(2000) 
If CreateNetworkServer(0, 6654) 
  OpenConsole() 
  PrintN("Server Online Listening on IP (" + IPString(IP) + ")") 
  Repeat 
    Select NetworkServerEvent() 
      Case 0 
        If Left(Inkey(), 1) = Chr(13) 
          Quit = 1 
        EndIf 
        Delay(5) 
      Case 1 
        PrintN("Ein neuer Client hat Connectet") 
        ClientID.l = EventClient() 
      Case 2 
        length.l = ReceiveNetworkData(ClientID, *buffer, 2000) 
        String$ = PeekS(*buffer, 2000) 
        PrintN("Received:" + String$) 
    EndSelect  
  Until Quit = 1 
EndIf 
FreeMemory(*buffer) 
Select NetworkServerEvent()
Case 0
If Left(Inkey(), 1) = Chr(13)
Quit = 1
EndIf
Was genau bedeutet das If Left(Inkey(),1) = Chr(13) ?

Was macht es bzw. ich kann es mir vorstellen, es reagiert auf Text den ein Client an den Server schickt. Ich bräuchte jedoch eine Erklärung was genau dabei passiert.

Hoffe ihr könnt oder wollt mit helfen.

Lieber Gruß

Julian
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

o hai! :D
Willkommen an Board!

also, Inkey() ist die Funktion, die einen Tastendruck von der Console holt.
Chr(13) ist CarriageReturn, also die ENTER-Taste.

.... das hätte dir aber auch alles deine Help verraten können,
du brauchst nur mit dem Cursor auf einen Befehl gehen, und dann F1 drücken.

es hat also überhaupt nix mit der client-server geschichte zu tun,
es prüft nur ne taste um die console zu beenden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jume

Beitrag von Jume »

ah vielen dank, verstehe.

könntest du mir dann noch verraten wie das mit dem "erkennen von cliententext" funktioniert?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

:?: was meinst du?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Willkommen im Forum,

nicht gleich versuchen etwas mit Netzwerk zu schreiben. Erst mal die Syntax von Purebasic lernen und mit kleinen einfachen schritten anfangen.

- Was sind Variablen.
- Verzweigungen (If ... Else ... EndIf)
- Schleifen (Repeat ... Until, etc)
- und so weiter.

Dann erklären sich viele sachen von selber und man verliert nicht die Lust etwas zu erstellen.

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Jume

Beitrag von Jume »

das habe ich bereits. mir ist trotzdem nicht ganz geläufig wo genau der server im script daten empfängt die verarbeitet und wieder ausgibt.

könnte mir das wer erklären. ich rede von folgendem:

Case 2
length.l = ReceiveNetworkData(ClientID, *buffer, 2000)
String$ = PeekS(*buffer, 2000)
PrintN("Received:" + String$)
EndSelect

was genau bedeutet die zweite und dritte zeile.
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

> length.l = ReceiveNetworkData(ClientID, *buffer, 2000)
Wie viele Bytes gelesen wurden, steht in lenght.l. Der *buffer ist 2000 Bytes
groß.

> String$ = PeekS(*buffer, 2000)
Die Daten aus dem Puffer werden auf den String kopiert.
Win11 x64 | PB 6.20
Jume

Beitrag von Jume »

ah vielen dank =)
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

als erster Anlaufpunkt bietet sich die von Kaeru erwähnte Hilfe an :wink:
Win11 x64 | PB 6.20
Jume

Beitrag von Jume »

Andesdaf hat geschrieben:als erster Anlaufpunkt bietet sich die von Kaeru erwähnte Hilfe an :wink:
habe ich ausprobiert, hat bei mir nicht funktioniert. wenn ich das so mach wie gesagt dann öffnet sich die ganz normale hilfe. und bevor ich da vier stunden suche frag ich doch lieber, warte 20 minuten auf eine antwort und freue mich. ich arbeite schon sehr viel mit der hilfe, habe gesucht und nichts für mich "aufklärendes" entdeckt.

trotzdem danke für deine "hilfe".
Antworten