Telnet Client

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
kreeph
Beiträge: 98
Registriert: 24.02.2007 11:50

Telnet Client

Beitrag 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:
Ich benutze PureBasic 3.30
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag 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
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag 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
PureBasic 4.40 (Windows - x86)
Benutzeravatar
kreeph
Beiträge: 98
Registriert: 24.02.2007 11:50

Beitrag von kreeph »

hi tobe und danke, aber ist der code auch 3.30 tauglich?
Ich benutze PureBasic 3.30
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag 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.
PureBasic 4.40 (Windows - x86)
Benutzeravatar
kreeph
Beiträge: 98
Registriert: 24.02.2007 11:50

Beitrag 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 :)
Ich benutze PureBasic 3.30
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag 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
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
kreeph
Beiträge: 98
Registriert: 24.02.2007 11:50

Beitrag 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 ^^
Ich benutze PureBasic 3.30
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Code: Alles auswählen

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

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