我收到一個異常,說無法投射'System.IO.Ports.SerialStream爲鍵入'System.Net.Sockets.NetworkStream無法投入'System.IO.Ports.SerialStream'類型的對象來鍵入'System.Net.Sockets.NetworkStream
當我運行下面的代碼
請給出解決方案如何克服這一點。
private NetworkStream GetStreams_USB_SER()
{
sp = new SerialPort();
NetworkStream Ns ;//= new NetworkStream();
Stream Is;
String KEYNAME3 = "HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM";
string COMPORT = (string)Registry.GetValue(KEYNAME3, "\\Device\\USBSER000", "NOT VALID COM");
Console.WriteLine("\nOutput3: " + COMPORT);
sp.PortName = COMPORT;
sp.BaudRate = 115200;
//serialport.ReadTimeout = 1000;
sp.Open();
if (sp.IsOpen)
{
Console.WriteLine("Port Detected :");
Is = sp.BaseStream;
return (NetworkStream)Is;
}
else
{
return null;
}
}
實際的問題是在它裏面沒有DataAvailable方法 –
因此,只有我需要的NetworkStream –
根據你所需要的方法,你不能選擇你的類型。所以你必須找到另一種沒有DataAvailable的方法。通常你使用StreamReader來讀取你的數據。這樣你就不需要訪問低級別的流方法。 – Sefe