[.NET] Telnet client handshaking is niet volledig

Pagina: 1
Acties:

  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Ik probeer een Telnet client geschreven in .NET aan te passen/werkend te krijgen. Het gaat om het programma wat Josh Mitts aanbiedt op zijn site (http://www.joshmitts.com/net/v2/projects.asp) Hij heeft hier zelfs een echte Microsoft Award voor gekregen. Wel een beetje jammer dan dat de 'Send' button in de app pas ingedrukt kan worden zodra er minder dan 0 karakters in zijn gevuld. |:(
code:
1
2
3
4
5
6
7
if (tbInput.Text.Length < 0)
{
    if (CurrentStatus == TelnetStatus.Connected)
    {
    btnSend.Enabled = true;
    }
}

Mwha, moet volgens mij meer dan nul zijn.

Het volgende probleem is dat de handshaking na de verbindingsopbouw niet volledig is (volgens mij). Het programma maakt wel verbinding met de Linux Telnet server maar daarna worden er geen verdere afspraken meer gemaakt. De Linux server probeert dit nog wel maar de client ziet dit als ontvangen data. Gevolg: vage ASCII karakters op je scherm terwijl de Linux login-prompt nooit te voorschijn komt.

Vanuit een DOS terminal komen er heel wat meer handshake pakketten voorbij.

Ik heb nu zelf even de Telnet Client met .NET opgebouwd (System.Net.Sockets.TcpClient) maar daar heb ik hetzelfde probleem mee. Ik heb het gevoel dat er nog ergens een functie aangeroepen moet worden om de verdere afsrpaken te maken tussen client en server.

"Microsoft Corporation awarded Josh Mitts the Windows Forms Coding Hero award for the development of Telnet .NET."
Tja, wat moet ik hier nou van denken.

Maar goed, iemand enig idee hoe ik de verdere afhandeling voor elkaar kan krijgen?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

kan je een overzicht geven van wat er wel en niet wordt bevestigd?

Doet iets met Cloud (MS/IBM)


  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Op vrijdag 12 juli 2002 12:05 schreef D2k het volgende:
kan je een overzicht geven van wat er wel en niet wordt bevestigd?
Kan inderdaad wel handig zijn :)
code:
1
2
3
4
5
6
7
8
9
    client     server
    ------SYN------>
    <---ACK+SYN-----
    ------ACK------>

    Connection established
     Nu nog onderhandelen over karakterset etc.

    <----ACK+PSH-----

De laatste wordt door de telnet .NET client gezien als tekst. Het telnetten vanuit een DOS prompt levert nog een aantal onderhandelingen op (ANSI codering etc.)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 12 juli 2002 12:12 schreef skiwi het volgende:

[..]

Kan inderdaad wel handig zijn :)
code:
1
2
3
4
5
6
7
8
9
    client     server
    ------SYN------>
    <---ACK+SYN-----
    ------ACK------>

    Connection established
     Nu nog onderhandelen over karakterset etc.

    <----ACK+PSH-----

De laatste wordt door de telnet .NET client gezien als tekst. Het telnetten vanuit een DOS prompt levert nog een aantal onderhandelingen op (ANSI codering etc.)
heb je TCP/IP boek niet bij je zeker?? ;)
ik zal ff kijken of ik wat kan vinden over telnet
.edit: nix nuttigs. de fout zit dan toch in .NET vrees ik ergens.

Doet iets met Cloud (MS/IBM)


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:34
Waarschijnlijk gebruikt deze implementatie gewoon een TCP socket en doet 'ie helemaal niets met telnet control packets. Een goede client zou deze in ieder geval moeten negeren (voor zover ze niet verwerkt worden) zodat ze het scherm van de gebruiker niet vervuilen.

Verder is Telnet niet zo ingewikkeld, dus als je een TCP verbinding kunt maken, dan kun je zelf wel handshaking implementeren:

De Telnet specificatie (RFC 854/standaard 8):
ftp://ftp.isi.edu/in-notes/std/std8.txt

Op www.rfc-editor.org kun je ook informatie over gerelateerde standaarden/RFC's vinden.

  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Op vrijdag 12 juli 2002 12:31 schreef Soultaker het volgende:
Waarschijnlijk gebruikt deze implementatie gewoon een TCP socket en doet 'ie helemaal niets met telnet control packets.
Klopt idd. Vraag is nu hoe ik ervoor zorg dat de telnet client wel goed om gaat met de control packets. Ben nieuw in .NET dus ja. Iemand wat hints. Telnet protocol snap ik wel, vraag is alleen hoe implementeer ik het in .Net

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:34
Op vrijdag 12 juli 2002 13:09 schreef skiwi het volgende:
Klopt idd. Vraag is nu hoe ik ervoor zorg dat de telnet client wel goed om gaat met de control packets. Ben nieuw in .NET dus ja. Iemand wat hints. Telnet protocol snap ik wel, vraag is alleen hoe implementeer ik het in .Net
Als je het protocol begrijpt en je kunt programmeren in C#, zou het moeten lukken. Ik kan je daar in ieder geval niet bij helpen.

Het minste wat je kan doen, wat betreft die control packets, is ze detecteren en weggooien.

  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Is gelukt... Het .NET telnet client proggie dat ik ergens had gevonden maakt gebruik van de TcpClient in .NET. Dit is een simpele manier om een TCP verbinding op te zetten zonder je druk te hoeven maken over allerlei sockets enz. Nu heb ik wel een versie gevonden waar wel die-hard socket wordt geprogrammeerd. :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 12 juli 2002 15:39 schreef skiwi het volgende:
Is gelukt... Het .NET telnet client proggie dat ik ergens had gevonden maakt gebruik van de TcpClient in .NET. Dit is een simpele manier om een TCP verbinding op te zetten zonder je druk te hoeven maken over allerlei sockets enz. Nu heb ik wel een versie gevonden waar wel die-hard socket wordt geprogrammeerd. :)
welke? ff een linkje is misschien makkelijk voor als iemand hetzelfde probleem nog es krijgt ;)

leuk he stage?? :+

Doet iets met Cloud (MS/IBM)


  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Op vrijdag 12 juli 2002 15:40 schreef D2k het volgende:

welke? ff een linkje is misschien makkelijk voor als iemand hetzelfde probleem nog es krijgt ;)
*zucht* D2k wil echt alles van me weten ;)
De .NET telnet Client die ik nu gebruik:
http://www.csharphelp.com/archives/archive239.html

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 12 juli 2002 15:54 schreef skiwi het volgende:

[..]

*zucht* D2k wil echt alles van me weten ;)
:*
doe gelijk ff je pin het het telefoon nummer van je vriendin :P
De .NET telnet Client die ik nu gebruik:
http://www.csharphelp.com/archives/archive239.html
tnx

Doet iets met Cloud (MS/IBM)

Pagina: 1