Java程序與上位機通訊是一種重要的應用,可以用于實現設備控制、數據采集、狀態監測等功能。在通訊過程中,Java程序作為客戶端,上位機作為服務器端,通過使用網絡協議進行數據交換。
// Java程序向上位機發送數據 public static void sendData() { try { Socket socket = new Socket("192.168.0.1", 8888); OutputStream outputStream = socket.getOutputStream(); outputStream.write("hello upcomputer".getBytes()); outputStream.flush(); outputStream.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } }
上面的代碼演示了Java程序向上位機發送數據的過程。首先建立Socket連接,然后通過輸出流向上位機發送數據,最后關閉連接。在編寫代碼時,需要根據實際需求對IP地址、端口號等參數進行設置。
// 上位機監聽Java程序的請求 public static void listen() { try { ServerSocket serverSocket = new ServerSocket(8888); while (true) { Socket socket = serverSocket.accept(); InputStream inputStream = socket.getInputStream(); byte[] bytes = new byte[1024]; int len; while ((len = inputStream.read(bytes)) != -1) { System.out.println(new String(bytes, 0, len)); } inputStream.close(); socket.close(); } } catch (IOException e) { e.printStackTrace(); } }
上面的代碼說明了上位機如何監聽Java程序的請求并處理數據。首先創建ServerSocket對象,并設置端口號,然后通過accept()方法等待客戶端連接。一旦連接建立成功,就可以通過輸入流讀取客戶端發送的數據。讀取到數據后,可以進行相應的處理,比如打印日志、返回響應等。