使用Socket In(JAVA)处理生物识别指纹考勤设备

时间:2014-06-02 09:08:42

标签: java sockets network-programming fingerprint biometrics

我正在尝试使用Java程序连接生物识别指纹考勤设备(实际上我是新手!)。我使用的设备是 Biocom 指纹考勤系统。 ,我正在搜索和阅读相关内容,并且我看到SDK可以使用基于设备类型(这很难,不合逻辑,而且,它不是全局解决方案!)

我研究了如何使用指纹设备连接,发送和检索数据的全球标准,再次我不幸运 足够找到一个明确的解决方案。目前,我尝试通过创建套接字对象(通过以太网端口)连接设备,但也没有与我一起执行!这个开放的无限循环问题在我脑海中!

总之请

  • 是否有任何一般,使用Java从此类设备连接,发送和检索数据的标准方法?
  • Socket是否可以考虑解决此类问题?
  • 如果,请在下面的代码中出现错误,除了主机IP 端口号之外,还需要更多其他内容连接设备?

使用的套接字代码:

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();
}
}

此图片可能会提供更多详情:

enter image description here

对不起,这个很长的问题。但是,任何提示或教程将不胜感激!

2 个答案:

答案 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