das sich zumindest mit dem Server verbinden kann, da wir nicht GENAU wissen, was der Server für Datenpakete erwünscht
oder verschickt.
Das Beispiel, schnell aus der PB-Hilfe (Network - Client.pb) geschraubt, soll es stark vereinfacht zeigen
wie es gehen könnte...
Code: Alles auswählen
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
#ACK_HELLO = $00010102
#SV_ACK_HELLO = $000200
Procedure SendStringPaket(ConnectionID, Typ, String.s)
Protected *Buffer, i
If Len(String)>0 And Len(String)<256 ; String muss eine Länge zwischen 0 und 256 Zeichen haben
*Buffer = AllocateMemory(StringByteLength(String)+4) ; Speicher anmelden (1 Long und Stringkennung + StringLänge)
If *Buffer ; Wenn Speicher anmelden erfolgreich
PokeL(*Buffer, Typ) ; Den Typ "Poken" z.B. ACK_Hello
PokeB(*Buffer+4, StringByteLength(String)) ; Länge des Strings an den Anfang "Poken"
For i = 1 To Len(String) ; Den String dahinter "Poken") ohne das CHR(0) am Ende
PokeB(*Buffer + 4 + i, Asc(Mid(String, i, 1)))
Next i
If ConnectionID ; Ist die Verbindung gültig ?
SendNetworkData(ConnectionID, *Buffer, MemorySize(*Buffer)) ; Senden des Strings
EndIf
FreeMemory(*Buffer) ; Speicher wieder freigeben
EndIf
EndIf
EndProcedure
*Empfang = AllocateMemory(100) ; Speicher anmelden um Daten zu Empfangen.
; Keine Doku, deswegen k.A. wieviel Empfangsbuffer gebraucht wird (Maximale Grösse in Bytes)
Port = 1435 ; Der Port des Zusi Servers
Adresse.s = "127.0.0.1" ; Die IP Adresse des ZUSI Servers ("127.0.0.1" entspricht localhost)
ConnectionID = OpenNetworkConnection(Adresse, Port)
If ConnectionID
Debug "Ich bin mit dem Server verbunden."
; Hier das Hallo senden : FP > SRV 00 01 01 02 08 46 61 68 72 70 75 6C 74 HELLO-Befehl
SendStringPaket(ConnectionID, #ACK_HELLO, "MeinPRG")
; Jetzt auf Antwort warten
RBytes = ReceiveNetworkData(ConnectionID, *Empfang, MemorySize(*Empfang))
If PeekL(*Empfang) = #SV_ACK_HELLO
Debug "Server hat Ok gemeldet"
EndIf
CloseNetworkConnection(ConnectionID)
Else
Debug "Kann den Server nicht finden"
EndIf
End