我正在尝试使用Java程序连接生物识别指纹考勤设备(实际上我是新手!)。我使用的设备是 Biocom 指纹考勤系统。 但,我正在搜索和阅读相关内容,并且我看到SDK可以使用基于设备类型(这很难,不合逻辑,而且,它不是全局解决方案!)
我研究了如何使用指纹设备连接,发送和检索数据的全球标准,再次我不幸运 足够找到一个明确的解决方案。目前,我尝试通过创建套接字对象(通过以太网端口)连接设备,但也没有与我一起执行!这个开放的无限循环问题在我脑海中!
总之请
使用的套接字代码:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Requester {
Socket requestSocket;
ObjectOutputStream out;
ObjectInputStream in;
String message;
Requester() {
}
void run() throws IOException {
try {
// 1. creating a socket to connect to the server
requestSocket = new Socket("192.168.0.19", 4370);
System.out.println("Connected to given host in port 4370");
// 2. get Input and Output streams
in = new ObjectInputStream(requestSocket.getInputStream());
// 3: Communicating with the server
String line;
while (true) {
line = in.readLine();
if (line != null) {
System.out.println(line);
}
}
} catch (UnknownHostException unknownHost) {
System.err.println("You are trying to connect to an unknown host!");
} catch (IOException ioException) {
ioException.printStackTrace();
} catch (Exception Exception) {
Exception.printStackTrace();
} finally {
in.close();
requestSocket.close();
}
}
void sendMessage(String msg) {
try {
out.writeObject(msg);
out.flush();
System.out.println("client: " + msg);
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
public static void main(String args[]) throws IOException {
Requester client = new Requester();
client.run();
}
}
此图片可能会提供更多详情:
对不起,这个很长的问题。但是,任何提示或教程将不胜感激!
答案 0 :(得分:1)
您不需要ObjectInputStream
。只需使用InputStream
获得的requestSocket.getInputStream()
。
或者使用像putty这样的终端程序连接到您的设备。这不需要编码。
答案 1 :(得分:0)
Biocom Biometrics是ZKTeco设备。 ZkTeco设备仅在Windows SDK中启动。您可以从https://www.zkteco.com/en/download_catgory.html下载SDK,并使用只能在Windows platorm上运行的java中的DLL。对于HTTP通信,要通过任何语言在任何平台上工作,请参考http://camsunit.com/application/zk-teco-essl-api-integration.html