Daten von der Waage können mithilfe der Java-Socket-Kommunikation nicht gelesen werdenJava

Java-Forum
Anonymous
 Daten von der Waage können mithilfe der Java-Socket-Kommunikation nicht gelesen werden

Post by Anonymous »

Ich versuche, Daten von einer Waage über eine TCP-Verbindung mithilfe von Java-Sockets zu lesen. Es funktioniert nur, wenn der PC und die Maschine dasselbe Subnetz haben. Ich möchte ohne dasselbe Subnetz arbeiten. Wenn ich es auf einem Tomcat-Server bereitstelle, vergleiche ich es mit der dynamischen IP-Adresse 171.x.x.x des Servers und der statischen IP-Adresse 192.x.x.x der Gewichtungsmaschine, die sich in einem anderen Subnetz befinden. Es funktioniert nicht .Bitte helfen Sie mir bei der Portweiterleitung und dem Routing mithilfe der Firewall.
Fehler:

E/A-Ausnahme aufgetreten: Zeitüberschreitung der Verbindung: getsockopt
java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Net.java:589) at java.base/sun.nio.ch.Net.connect(Net.java:578) unter java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583) unter java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327
unter java.base/java.net .Socket.connect(Socket.java:751)
at com.weight.putty.ServiceImpl.WeightServImpl.readData(WeightServImpl.java:22)
at com.weight.putty.Controller.WeightController.getData(WeightController.java:32)
Hier ist der Codeausschnitt, den ich verwende:
try (Socket socket = new Socket()) {
//Here I pass weight machine ipadress and port
socket.connect(new InetSocketAddress(ipAddress, port), 10000); //Exception occurs here
socket.setSoTimeout(5000);

InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = reader.readLine();

if (line != null) {
return line.trim();
} else {
return "No data received from the server.";
}
} catch (UnknownHostException e) {
return "The IP address could not be determined. Please check the IP address.";
} catch (SocketTimeoutException e) {
return "Connection timed out: " + e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return "IOException occurred: " + e.getMessage();
} catch (Exception e) {
e.printStackTrace();
return "Unexpected error: " + e.getMessage();
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post