我正在尝试使用 Java 程序连接生物识别指纹考勤设备。我使用的设备是 Pegasus T5 指纹扫描仪。不幸的是,他们用于此设备的 SDK (which can be downloaded here) 仅涵盖我不具备专业知识的 C#、.Net 和 VB。当我询问制造商时,他们回答说没有适用于该设备的 Java SDK。尽管我对这些语言一无所知,但我尝试理解 SDK 中的代码以了解设备是如何连接的,我看到它只是使用网络 ip 和端口与设备建立连接数。
如果你引用设备的C# SDK,你可以看到我在这上面看到的例子
frmEvent.cs在cmdStartMoniter_Click
方法中,按如下方式连接。
bRet = bpc.StartEventCapture(0, util.pubIPAddrToLong(txtSourceIP.Text), Convert.ToInt32(txtPortNumber.Text));
并且将 StartEventCapture
方法引用为 public virtual bool StartEventCapture(int dwCommType, int dwParam1, int dwParam2);
,它位于 .dll 文件,因为我对如何计算代码有了进一步的了解,所以我已经迷路了。
然而,我在脑海中保留了那个例子,作为下一步,我开始研究关于如何使用指纹设备连接、发送和检索数据的全局标准,但我又一次没有幸运地找到一个明确的解决方案。但是从一些一直试图处理相同问题的人的一些例子和我自己看到的例子中,我试图通过创建一个 Socket
对象来连接设备但是当我执行它时,它仅导致 java.net.ConnectException: Connection timed out: connect
有四个问题
- 是否有任何适用于生物识别指纹考勤设备的 Java SDK 也可用于我的设备?
- 是否有任何通用的标准方法可以使用 Java 连接、发送和检索此类设备的数据?
- 如果通过
Socket
连接到设备是一个解决方案,是否有任何特定的标准请求我应该发送到设备以接收来自是吗? - 如果我所做的尝试是一种方法,我做错了什么,我应该如何纠正这个问题?
这是我用来连接设备的代码。
String host = "192.168.168.100";
int port = Integer.parseInt("5005");
try {
Socket socket = new Socket(host, port);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while (true){
line = in.readLine();
if (line != null){
System.out.println(line);
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
最佳答案
每个生物识别设备通常都有 lAN 端口或 Web 界面。生物识别设备在特定端口上发送数据。例如
192.168.1.23:8080
您可以使用 java 套接字连接到它并可以读取数据..
Socket socket = new Socket("192.168.1.23","8080");
坚持下去
享受
关于java - 从生物识别指纹考勤设备中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20732928/