Guest User

Untitled

a guest
Nov 1st, 2021
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.60 KB | None | 0 0
  1. //tc tcp клиент
  2. tempText = tc.Read().Split(new string[] { Environment.NewLine }, StringSplitOptions.None).ToList();
  3.  File.WriteAllLines("temp.txt",allLinesText);
  4.  
  5. public string Read()
  6.         {
  7.             if (!tcpSocket.Connected) return null;
  8.             StringBuilder sb = new StringBuilder();
  9.             do
  10.             {
  11.                 ParseTelnet(sb);
  12.                 Thread.Sleep(Sleeptime);
  13.             } while (tcpSocket.Available > 0);
  14.             return sb.ToString();
  15.         }
  16.  
  17.  
  18.  
  19. void ParseTelnet(StringBuilder sb)
  20.         {
  21.             while (tcpSocket.Available > 0)
  22.             {
  23.                 int input = tcpSocket.GetStream().ReadByte();
  24.                 switch (input)
  25.                 {
  26.                     case -1:
  27.                         break;
  28.                     case (int)Verbs.IAC:
  29.                         // interpret as command
  30.                         int inputverb = tcpSocket.GetStream().ReadByte();
  31.                         if (inputverb == -1) break;
  32.                         switch (inputverb)
  33.                         {
  34.                             case (int)Verbs.IAC:
  35.                                 //literal IAC = 255 escaped, so append char 255 to string
  36.                                 sb.Append(inputverb);
  37.                                 break;
  38.                             case (int)Verbs.DO:
  39.                             case (int)Verbs.DONT:
  40.                             case (int)Verbs.WILL:
  41.                             case (int)Verbs.WONT:
  42.                                 // reply to all commands with "WONT", unless it is SGA (suppres go ahead)
  43.                                 int inputoption = tcpSocket.GetStream().ReadByte();
  44.                                 if (inputoption == -1) break;
  45.                                 tcpSocket.GetStream().WriteByte((byte)Verbs.IAC);
  46.                                 if (inputoption == (int)Options.SGA)
  47.                                     tcpSocket.GetStream().WriteByte(inputverb == (int)Verbs.DO ? (byte)Verbs.WILL : (byte)Verbs.DO);
  48.                                 else
  49.                                     tcpSocket.GetStream().WriteByte(inputverb == (int)Verbs.DO ? (byte)Verbs.WONT : (byte)Verbs.DONT);
  50.                                 tcpSocket.GetStream().WriteByte((byte)inputoption);
  51.                                 break;
  52.                             default:
  53.                                 break;
  54.                         }
  55.                         break;
  56.                     default:
  57.                         sb.Append((char)input);
  58.                         break;
  59.                 }
  60.             }
  61.         }
Advertisement
Add Comment
Please, Sign In to add comment