我收到一个异常,说无法投射'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