我使用套接字很新,我试图从端口1000上有原始流的RFID设备获取数据。找到这个代码,我在控制台应用程序上使用这个代码
TcpClient tcpClient;
NetworkStream networkStream;
tcpClient = new TcpClient("10.19.1.101", 10000);
networkStream = tcpClient.GetStream();
StreamReader streamReader = new StreamReader(networkStream);
StreamWriter streamWriter = new StreamWriter(networkStream);
String wline = "";
while (wline != "exit")
{
Console.Write(streamReader.ReadLine());
Console.Write(Environment.NewLine);
Console.Write("next command:");
wline = Console.ReadLine();
streamWriter.Write(wline);
}
显然,这段代码会等待一些命令写入远程主机,但我不需要写任何东西。我只是试图获取RFID设备发送的信息,这些信息基本上是RFID标签代码。标签代码可以随机到达。我实际上评论了前面代码中的一些行,它能够在控制台中打印标签代码。
TcpClient tcpClient;
NetworkStream networkStream;
tcpClient = new TcpClient("10.19.1.101", 10000);
networkStream = tcpClient.GetStream();
StreamReader streamReader = new StreamReader(networkStream);
//StreamWriter streamWriter = new StreamWriter(networkStream);
String wline = "";
while (wline != "exit")
{
Console.Write(streamReader.ReadLine());
Console.Write(Environment.NewLine);
//Console.Write("next command:");
//wline = Console.ReadLine();
//streamWriter.Write(wline);
}
我不是正确的方法,因为我没有控制while循环。任何人都可以指导我走正确的道路或方法来解决我的问题"。
编辑:我更改了代码,看起来像这样: TcpClient tcpClient = new TcpClient("10.19.1.101", 10000);
NetworkStream networkStream = tcpClient.GetStream();
StreamReader streamReader = new StreamReader(networkStream);
while (tcpClient.Connected)
{
Console.WriteLine(streamReader.ReadLine();
}
好奇的是,当我在winFrom应用程序中执行相同的操作时,应用程序会在循环中冻结几次。
答案 0 :(得分:0)
您似乎没有将wline更新为循环内的流值。