Linux에서 지문 장치 (tc400) C2 장치를 연결하려고합니다. 하드웨어 벤더가 리눅스에서 사용할 수없는 DLL 파일을 제공하므로 소켓 프로그래밍을 사용하고 16 진 코드를 사용하여 디바이스와 통신하려고했습니다. 문제는 장치가 전혀 응답하지 않고 클라이언트 소켓의 입력 스트림을 가져 오려고하면 코드가 충돌한다는 것입니다. 이 내 모든 코드는 다음과 같습니다Java 및 Hex를 사용하여 C2 장치 연결
import java.io.*;
import java.net.*;
public class Client{
Socket requestSocket;
ObjectOutputStream out;
ObjectInputStream in;
String message;
Client(){}
void run()
{
try{
//1. creating a socket to connect to the server
requestSocket = new Socket("172.16.16.192", 5010);
//requestSocket = new Socket("localhost", 5010);
System.out.println("Connected to Machine in port 5010");
//2. get Input and Output streams
System.out.println("-1");
out = new ObjectOutputStream(requestSocket.getOutputStream());
//out.flush();
System.out.println("D0");
sendMessage("A5\\x00\\x00\\x00\\x00\\x30\\x00\\x00\\x51\\x10"); // getting the device information
in = new ObjectInputStream(requestSocket.getInputStream());
//3: Communicating with the server
System.out.println("D1");
do{
System.out.println("D2");
try{
System.out.println("D3");
sendMessage("A5\\x00\\x00\\x00\\x00\\x30\\x00\\x00\\x51\\x10"); // getting the device information
System.out.println("D5");
byte msg [] = null;
System.out.println("D6");
msg = (byte[])in.readObject();
System.out.println("D7");
System.out.println("Machine>" + msg);
//sendMessage(message);
//message = (String)in.readObject();
}
catch(ClassNotFoundException classNot){
System.err.println("data received in unknown format");
}
}while(!message.equals("bye"));
}
catch(UnknownHostException unknownHost){
System.err.println("You are trying to connect to an unknown host!");
}
catch(IOException ioException){
ioException.printStackTrace();
}
finally{
//4: Closing connection
try{
in.close();
out.close();
requestSocket.close();
}
catch(IOException ioException){
ioException.printStackTrace();
}
}
}
void sendMessage(String msg)
{
System.out.println("D4");
try{
System.out.println("D41");
out.writeObject(msg.getBytes());
out.flush();
System.out.println("client>" + msg);
}
catch(IOException ioException){
ioException.printStackTrace();
}
}
public static void main(String args[])
{
Client client = new Client();
client.run();
}
}
사람이 내가 감사 할 것입니다 장치와 통신하는 데 도움 수 있다면.
당신이이 일을 어떻게 처리했는지 물어볼 수 있습니까? 나는 C3 장치를 가지고 있으며 Windows에서만 통신 할 수 있으며 Linux 대안을 가지고있어 좋을 것입니다. – Jeremy