我有一个读卡器,用于注册员工入口。它适用于离线和在线模式
离线意味着它存储所有数据(比如一个月),并且在通过telnet连接到计算机后,管理员发送一个"读取"命令和读者发回一个月内存储的所有数据。
在线模式下,读卡器通过telnet连接到计算机,每当有人向读卡器显示卡时,读卡器就会发送数据,应用程序会立即显示结果。
我怎么能搞清楚这一点?我也使用了异步套接字但没有很好的结果。
感谢任何帮助。
private void button3_Click(object sender, EventArgs e)
{
string ip = Convert.ToString(IP_textBox.Text);
TcpClient telnet = new TcpClient();
telnet.Connect("172.16.0.133", 5010);
//sending "read" to Device
//string data = "read";
//byte[] recieveData = new byte [32768];
NetworkStream readStream = telnet.GetStream();
if (readStream.CanWrite)
{
byte[] readData = System.Text.Encoding.ASCII.GetBytes("read");
readStream.Write(readData, 0, readData.Length);
}
else
{
telnet.Close();
readStream.Close();
return;
}
if (readStream.CanRead)
{
byte[] recieveData = new byte[telnet.ReceiveBufferSize];
readStream.Read(recieveData, 0, (int)telnet.ReceiveBufferSize);
string out_string = Encoding.UTF8.GetString(recieveData);
// System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
//string out_string = enc.GetString(recieveData, 0, recieveData.Length);
MessageBox.Show("Im here");
}
else
{
telnet.Close();
readStream.Close();
return;
}
}
答案 0 :(得分:0)
嗯,TELNET是你必须遵守的协议。仅将TcpClient
连接到TELNET端口并发送命令是不够的。