Seite 2 von 2
Verfasst: 14.06.2009 18:00
von Andesdaf
> habe ich ausprobiert, hat bei mir nicht funktioniert. wenn ich das so mach wie gesagt dann öffnet sich die ganz normale hilfe
Öffnet ein F1 auf ButtonGadget() nicht die Hilfe für ButtonGadget()?
Natürlich muss der Befehl auch eine native PB-Funktion sein ansonsten geht
das vorerst nicht.
Verfasst: 14.06.2009 18:05
von Jume
Code: Alles auswählen
If InitNetwork() = 0
MessageRequester("Error", "Error")
EndIf
ip$ = InputRequester("","bitte server ip eingeben!","")
Debug ip$
ConnectionID = OpenNetworkConnection(ip$, 6654)
If ConnectionID
OpenConsole()
PrintN("Erfolgreich zum server Verbunden")
String$ = InputRequester("","String zum versenden eingeben","")
If String$
SendNetworkData(ConnectionID, @String$, Len(String$))
EndIf
Input()
Else
Debug "error"
EndIf
End
Das ist der Client, wie kann ich es machen das der Server bspw. den Befehl "info" bekommt und anschließend einen text ausgibt?
den server code kennt ihr ja.
bin sehr dankbar für die bisherige hilfe.
Verfasst: 14.06.2009 18:10
von jojo1541
auf Serverseite in den Codeteil zum Empfangen von Daten musst du folgendes ergänzen:
Code: Alles auswählen
Case 2
length.l = ReceiveNetworkData(ClientID, *buffer, 2000)
String$ = PeekS(*buffer, 2000)
If string$ = "info"
;Gib Text aus
EndIf
EndSelect
Verfasst: 14.06.2009 18:23
von Jume
genauso habe ich das auch gehandhabt aber irgendwie hat er nichts geschrieben.
Verfasst: 14.06.2009 18:25
von Andesdaf
Jume hat geschrieben:genauso habe ich das auch gehandhabt aber irgendwie hat er nichts geschrieben.
Kann ja alles sein aber ohne handfesten Code kann dir Keiner helfen.
Verfasst: 14.06.2009 18:26
von Jume
ah,
ich habe das problem gefunden.
wenn ich den text einfach über die konsole laufen lass funktioniert es. versuch ich jedoch den text über den server zu verschicken, quasi übers "netz" dann funktioniert es nicht.
könntest du das ganze nochmal so abändern das der client das ganze auch empfangen kann ?
Verfasst: 14.06.2009 19:56
von Jume
könnte jemand den clienten so umbauen das er genauso wie der server texte empfangen kann ?
Verfasst: 14.06.2009 20:15
von jojo1541
kleinen Moment, ich bastel kurz was.
Edit: Sooooo hier mal ein modifizierter Client:
Code: Alles auswählen
If InitNetwork() = 0
MessageRequester("Error", "Error")
EndIf
ip$ = InputRequester("","bitte server ip eingeben!","")
Debug ip$
ConnectionID = OpenNetworkConnection(ip$, 6654)
If ConnectionID
*buffer = AllocateMemory(2048)
OpenConsole()
PrintN("Erfolgreich zum server Verbunden")
PrintN("fuer Eingabemodus bitte "+Chr(34)+"T"+Chr(34)+"druecken.")
Repeat
Select NetworkClientEvent(ConnectionID)
Case 2 ; Wenn Rohdaten ankommen
ReceiveNetworkData(ConnectionID,*buffer,2048)
string$ = PeekS(*buffer,2048)
PrintN("String erhalten")
Print("Inhalt: ")
PrintN(string$)
PrintN("")
EndSelect
inkey$ = Inkey()
If Inkey$ = "t" ; Wenn Inkey t ist, dann wird der Textmodus aktiviert.
textmode = 1
EndIf
If textmode = 1 ; Textmode
inkey$ = "0"
PrintN("fuer normalen Modus bitte "+Chr(34)+"zurueck"+Chr(34)+" eingeben")
PrintN("")
input$ = Input()
If input$ = "sendstring" ;String senden
String$ = InputRequester("","String zum versenden eingeben","")
If String$
SendNetworkData(ConnectionID, @String$, Len(String$))
EndIf
EndIf
If input$ = "zurueck" ; Auf Normalmodus zurückwechseln !!!WICHTIG!!!: zum empfangen eines Strings
EnableGraphicalConsole(1) ; muss der Server/Client im Normalmodus sein, da Input() den Programmablauf pausiert,
ClearConsole() ; bis eine Eingabe gemacht wurde.
EnableGraphicalConsole(0)
PrintN("fuer Eingabemodus bitte "+Chr(34)+"T"+Chr(34)+"druecken.")
PrintN("")
textmode = 0
EndIf
If input$ = "cls" ; Konsole leeren
EnableGraphicalConsole(1)
ClearConsole()
EnableGraphicalConsole(0)
EndIf
EndIf
Delay(10)
Until input$ = "exit" ;beenden
Else
Debug "error"
EndIf
FreeMemory(*buffer)
End
Und ein modifizierter Server:
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
inkey$ = Inkey()
If Inkey$ = "t"
textmode = 1
inkey$ = "0"
EndIf
If textmode = 1
inkey$ = "0"
PrintN("fuer normalen Modus bitte "+Chr(34)+"zurueck"+Chr(34)+" eingeben")
PrintN("")
input$ = Input()
If input$ = "sendstring"
String$ = InputRequester("","String zum versenden eingeben","")
If String$
SendNetworkData(ClientID, @String$, Len(String$))
EndIf
EndIf
If input$ = "zurueck"
EnableGraphicalConsole(1)
ClearConsole()
EnableGraphicalConsole(0)
PrintN("fuer Eingabemodus bitte "+Chr(34)+"T"+Chr(34)+"druecken.")
PrintN("")
textmode = 0
EndIf
EndIf
Delay(10)
Until Quit = 1
EndIf
Verfasst: 14.06.2009 20:16
von X360 Andy
Ein Chat also ?
Verfasst: 14.06.2009 21:01
von Jume
vielen dank das ist echt seeehr neett

))))