Seite 1 von 2

Telnet Client

Verfasst: 16.04.2008 18:42
von kreeph
Hallo Leute
nach langem hat mich mal wieder die lust zum programmieren gepackt
was ich mir diesmal in den kopf gesetzt habe ist ein telnet client wie PuTTY. dieser soll auf teamspeak² server ausgelegt werden. also man soll bequem seine member verwalten können und alles mögliche machen können. nun weiß ich nur nicht, wie ich das anstellen soll, geschweige denn habe ich eien ahnung, ob ich das mit pb überhaupt schreiben kann. ich habe nactürlich schon ein bisschen gesucht, aber nichts richtiges gefunden :)
als alternative wollte ich einen telnet server und client schrieben, mit dem ich einen anderen pc steuern kann.
ich hoff mal, ich hab mir für eienn anfänger nicht zu viel vorgenommen
danke schonmal
kreeph :allright:

edit:
p.s. hab immer noch 3.30 :mrgreen:

Verfasst: 17.04.2008 00:48
von Laurin
Na dann mal viel Spaß. Hier hast du ein wenig Material, mit dem du anfangen kannst :wink:
http://de.wikipedia.org/wiki/Telnet
http://tools.ietf.org/html/rfc854
http://tools.ietf.org/html/rfc855

Die RFCs musst du einhalten, damit dein Client zu möglichst vielen Servern kompatibel ist. Davon gibt's laut Wikipedia ne ganze Menge (also nicht nur die zwei da oben):

* RFC 854/STD 8** – Telnet Protocol Specification
* RFC 855/STD 8 – Telnet Option Specifications
* RFC 856/STD 27 – Telnet Binary Transmission
* RFC 857/STD 28 – Telnet Echo Option
* RFC 858/STD 29 – Telnet Suppress Go Ahead Option
* RFC 859/STD 30 – Telnet Status Option
* RFC 860/STD 31 – Telnet Timing Mark Option
* RFC 861/STD 32 – Telnet Extended Options: List Option

Verfasst: 17.04.2008 02:57
von tobe
hi kreeph,

das musste ich jetzt auch gleich mal ausprobieren ;)
hiermit kann ich mit meinem teamspeak² server kommunizieren:

Code: Alles auswählen

Procedure Receive(ClientID.l)
  mem = AllocateMemory($FFFF)
  PrintN(PeekS(mem, ReceiveNetworkData(ClientID, mem, $FFFF)))
  FreeMemory(mem)
EndProcedure

OpenConsole()
If InitNetwork()
  Print("Ip vom TS server: ")
  ip$ = Input()
  PrintN("verbinde mit " + ip$ + ":51234")
  ServerID.l = OpenNetworkConnection(ip$, 51234)
  If ServerID = 0
    PrintN("fehler beim verbindungsaufbau mit " + ip$)
    Input()
    End
  EndIf
  Receive(ServerID)
  PrintN("sende help")
  SendNetworkString(ServerID, "help" + #CRLF$)
  Receive(ServerID)
  Repeat
    input$ = Input()
    If input$
      SendNetworkString(ServerID, input$ + #CRLF$)
      Receive(ServerID)
    EndIf
  Until LCase(input$) = "quit"
EndIf
End
der code ist sehr einfach gestrickt, aber vielleicht hilft er dir weiter ;)

mfG
tobe

Verfasst: 17.04.2008 16:58
von kreeph
hi tobe und danke, aber ist der code auch 3.30 tauglich?

Verfasst: 17.04.2008 17:11
von tobe
ich hoffe schon, habe mir mühe gegeben keine neuen befehle zu verwenden ;)

edit:
ah, jetzt fällt mir grad ein das AllocateMemory() früher anders ausgekuckt hat
aber das kannst du ja anpassen, ich hab selber kein PB3.3 zum testen.

Verfasst: 17.04.2008 18:26
von kreeph
jo aber gibt aber auch andere sachen, wegen denen ses nicht klappt. könnte sich jemand die mühe machen und den umschreiben?
danke schonmal :)

Verfasst: 18.04.2008 12:18
von HeX0R
kreeph hat geschrieben: könnte sich jemand die mühe machen und den umschreiben?
danke schonmal :)
Du meinst, du bist mit diesem 30 Zeiler überfordert ? :o

Verfasst: 18.04.2008 12:20
von Kiffi
kreeph hat geschrieben:jo aber gibt aber auch andere sachen, wegen denen ses nicht klappt.
dann wäre es doch schon mal von Vorteil zu wissen, WAS nicht klappt.

Grüße ... Kiffi

Verfasst: 18.04.2008 20:31
von kreeph
Ja ich hab natürlic selbst versucht den umzuscrheibne, so faul bin ich nun auch nicht ;)
aber ich verstehe z.B. nicht, wie ich die variablen

Code: Alles auswählen

...
  Receive(ServerID)
  PrintN("sende help")
  SendNetworkString(ServerID, "help" + [b]#CRLF$[/b])
  Receive(ServerID)
  Repeat
    input$ = Input()
    If input$
      SendNetworkString(ServerID, input$ + [b]#CRLF$[/b])
      Receive(ServerID)
...
zustande kommen
und mit dem

Code: Alles auswählen

PrintN(PeekS(mem, ReceiveNetworkData(ClientID, mem, $FFFF)))

gibts auch probleme
hey kommt schon, ich hab seit nem halben jahr nix mehr gemacht und hatte sogar probleme die gadgets auf meinem window zu verteilen ^^

Verfasst: 18.04.2008 21:15
von mk-soft

Code: Alles auswählen

CRLF$ = Chr(13) + Chr(10)
Debug crlf$
ohne Worte

:wink: