سؤال

وأنا المهاجرة C # رمز من استخدام NetworkStream إلى SSLStream، ولكن أين يمكنني استخدام stream.DataAvailable أحصل على خطأ:

<اقتباس فقرة>   

والخطأ 1 "System.Net.Security.SslStream"   لا يحتوي على تعريف لل   "DataAvailable" وعدم التمديد   طريقة 'DataAvailable "قبول   الحجة الأولى من نوعها   "System.Net.Security.SslStream" يمكن   يمكن العثور على (التي تفتقد باستخدام   التوجيه أو مرجع تجميع؟)

والآن لي نسخة MSDN المحلية لا يشمل DataAvailable كعضو SslStream لكن http://msdn.microsoft.com/en-us/library/dd170317.aspx تقول انها لا تملك DataAvailable الأعضاء. هنا هو نسخة من قانون بلدي.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Net.Security;
using System.Security.Authentication;
using System.Security.Cryptography.X509Certificates;
using System.IO;

namespace Node
{

  public static class SSLCommunicator
  {
    static TcpClient client = null;
    static SslStream stream = null;
    static List<byte> networkStreamInput = new List<byte>();
    public static void connect(string server, Int32 port)
    {
        try
        {
          client = new TcpClient(server, port);
          stream = new SslStream(client.GetStream(),false);
    ...
    ...
    ...
    public static List<DataBlock> getServerInput() 
    {
      List<DataBlock> ret = new List<DataBlock>();
      try
      {
      //check to see if stream is readable.
      if (stream.CanRead)
      {
        //Check to see if there is data available.
        if (stream.DataAvailable)
        {
          byte[] readBuffer = new byte[1024];
          int numberOfBytesRead = 0;
          //while data is available buffer the data.
          do
          {
            numberOfBytesRead = stream.Read(readBuffer, 0, readBuffer.Length);
            byte[] tmp = new byte[numberOfBytesRead];
            Array.Copy(readBuffer, tmp, numberOfBytesRead);
            networkStreamInput.AddRange(tmp);
          } while (stream.DataAvailable);
     ...

وأيضا إذا كان لديك وسيلة أفضل للحصول على انتاج بلدي للتيار في لمجموعة المدار (سوف يكون هناك بعض الاعراب عمل عليها في وقت لاحق كود) أحب مساعدة. أنا باستخدام Visual Studio 2008

و- تحرير أنا فقط أدركت أنني مرتبط SDK جزءا لا يتجزأ، وهذا ليس نظام مضمن، فكيف يمكنني معرفة ما إذا كان البيانات غير متوفرة في SDK صافي طبيعي؟

هل كانت مفيدة؟

المحلول

والصفحة التي تبحث في هو لإطار مايكرو .NET.

ووفقا ل هذه الصفحة لصافي 2.0 و هذه الصفحة ل صافي 3.5 ، ليس هناك خاصية DataAvailable على SSLStream.

وتحرير: لا يمكن أن مجرد دعوة قراءة () ومعرفة ما إذا كان يمكنك الحصول على أي شيء مرة أخرى؟ أنا لا أعتقد أن هذا سيمنع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top