gpt4 book ai didi

virtual-machine - Java中如何与虚拟机通信?

转载 作者:行者123 更新时间:2023-12-01 23:06:01 25 4
gpt4 key购买 nike

我编写了一个Java小程序来检查pin码是否正确。正如您在代码中看到的,程序要求某人输入他的 PIN 码,然后检查 bdd.txt 文件(扮演数据库角色)PIN 码是否正确。

实际上我想进入下一步,我想在Android设备上部署这个程序。

首先,我需要虚拟机(例如 Ubuntu)上的 bdd.txt 文件,因此它不再是本地的。那是更现实的。我必须记住,将来设备会询问输入的引脚是否良好,当然所有引脚都不会在设备上,因此所有检查过程都不会在本地进行。

这就是为什么我的问题是:如何用Java与虚拟机通信?我的程序在我的 Windows 计算机上运行,​​我已经安装了带 VMware 的 Ubuntu,我如何访问虚拟机中的文件? (网络服务?)这可能吗?如果是,怎么办?

代码:

import java.io.*;
import java.util.*;

public class Main {

// Fonction permettant d'accéder/lire notre BDD de pins (fichier .txt)
static public boolean readPinsData(File dataFile, ArrayList<Integer> data) {
boolean err = false;
try {
Scanner scanner = new Scanner(dataFile);
String line;
while (scanner.hasNext()) {
line = scanner.nextLine();
try {
data.add(Integer.parseInt(line));
} catch (NumberFormatException e) {
e.printStackTrace();
err = true;
}
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
err = true;
}

return err;
}

public static void main(String[] args) {

// Définition int & booléen nécessaires ici
System.out.println("-----------------------");
System.out.println("APPLICATIONS BESOINS");
System.out.println("-----------------------");
Console console = System.console();

//System.out.println(console == null);

int pinSize = 0;
int nbTry = 0;
boolean authenticated = false;

// On va demander à saisir un pin de 4 digits : tant que l'utilisateur
// ne saisit pas 4 digits, on boucle
do {
do {

char passwordArray[] = console.readPassword("Enter pin: "); // Demande
// de
// saisie
// du
// pin
pinSize = passwordArray.length;

if (pinSize != 4) { // On prévient l'utilisateur que le pin se
// compose de 4 chiffres, sinon Ok on passe
// à la vérif.
System.out.println("Pin must be 4 digits");
} else {
System.out.println("Checking...");
}

ArrayList<Integer> pins = new ArrayList<Integer>(); // Nos pins
// sont mis
// dans un
// Liste
readPinsData(new File("bdd.txt"), pins); // On lit dans notre
// BDD de pins
// System.out.println(pins);
// System.out.println(passwordArray);

String[] thePins = new String[pins.size()];
for (int i = 0; i < thePins.length; i++) {
thePins[i] = pins.get(i).toString();
}

String passEntered = String.valueOf(passwordArray);

for (int i = 0; i < thePins.length; i++) { // Recherche si pin
// bon et on print
// :)
if (passEntered.equals(thePins[i]) && pinSize == 4) {
System.out.println(":)");
authenticated = true;
break;
}
}

} while (pinSize != 4); // Si la on saisit un pin qui n'a pas 4
// chiffres, on ne peux valider la demande,
// donc le nombre d'Essais n'est pas déduit
if (!authenticated && pinSize == 4) { // Dans ce cas, on incrémente
// le nombre d'essais car le
// pin saisit n'est pas dans
// notre BDD et on print :(
System.out.println(":(");
nbTry++;
}
} while (nbTry < 3 && !authenticated);
}
}

“数据库”:

1111
2222
3333
4444
5555
6666
7777
8888
9999

最佳答案

假设虚拟机已配置网络连接,它应该像网络上的任何其他计算机一样具有 IP 地址。只需像打开任何其他计算机一样打开网络连接即可。

请注意,虚拟机的网络连接通常配置为 NAT,这意味着只有主机计算机才能直接连接到虚拟机。如果您需要从虚拟机主机以外的其他地方连接到它(例如不是在主机上运行的模拟器的 Android 设备),您需要将虚拟机配置为“桥接”网络,这样它就可以直接访问局域网。

关于virtual-machine - Java中如何与虚拟机通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com