我正在尝试使用 Java 程序连接生物识别指纹考勤设备。我使用的设备是Biocom指纹考勤系统。然而,我正在搜索和阅读相关内容,我发现可以根据设备类型使用 SDK(这很难,不符合逻辑,而且,它不是全局解决方案!)
我研究了如何使用指纹设备连接、发送和检索数据的全球标准,但我再次没有幸运地找到明确的解决方案。目前,我尝试通过创建一个来连接设备Socket
对象(通过以太网端口)但也没有与我一起执行。这个无限循环问题就在我的脑海里。
- 是否有任何通用的标准方法可以使用 Java 连接、发送和检索此类设备的数据?
- Can a
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();
}
}
此图片可能会提供更多详细信息:
你不需要ObjectInputStream
。只需使用InputStream
你从requestSocket.getInputStream()
.
或者使用 putty 等终端程序连接到您的设备。这不需要编码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)