本帖最后由 michael_yztt 于 2013-09-08 12:06:29 编辑

解决方案 »

  1.   

    http://simpletelnetclient.codeplex.com/http://www.lixin.me/blog/2012/09/23/29598
      

  2.   

    Google 正则表达式30分钟入门教程。
      

  3.   

    版主,你给链接的那个telnet类,返回的字符串最大只有256位?
    还问个低级问题,telnet类里有个public方法,用于返回字符串.
    public string recvData()
            {
                byte[] tempData = new byte[buffsize];
                List<byte> data = new List<byte>();
                int count = 0;
                do
                {
                    if (!ns.DataAvailable)
                    {
                        return "";
                    }
                    count = ns.Read(tempData, 0, tempData.Length);
                    data.AddRange(tempData.Take(count));
                } while (count == buffsize);
                return Negotiate(data.ToArray());
            }
           /// <summary>
           /// 协商。最简单的协商:拒绝所有要求。
           /// </summary>
           /// <param name="data"></param>
           /// <returns></returns>
            string Negotiate(byte[] data)
            {
                List<byte> sendData = new List<byte>();
                for (int i = 0; i < data.Length; i += 3)
                {
                    if (data[i] == 255)
                    {
                        byte[] remoteData = data.Skip(i).Take(3).ToArray();
                        for (int j = 0; j < remoteData.Length; j++)
                        {
                            if (remoteData[j] == 253)
                                remoteData[j] = 252;
                        }
                        sendData.AddRange(remoteData);
                    }
                    else
                    {
                        break;
                    }
                }
                byte[] sendByte = sendData.ToArray();
                ns.Write(sendByte, 0, sendByte.Length);
                if (sendByte.Length == data.Length)
                {
                    return recvData();
                }
                return System.Text.Encoding.Default.GetString(data.Skip(sendByte.Length).ToArray());        }我用一个string变量获取这个返回值,如:string temp= tn.recvData();
    为何要么temp="",要么只获取了第一行?
      

  4.   

    是否可以讲telnet远端回复的信息导入到一个数组里,然后用linq进行查询判断?
      

  5.   

    我用这个类查询回复的信息,如何填入可以使用LINQ的对象?
    大神帮帮忙.