我正在构建一个应用程序,其中我有一个服务器和一个相互通信的客户端 -通过远程登录. (通过插座)。服务器程序正在监视一罐气体,并通过套接字将温度水平和压力水平发送到接受的客户端。
当我在 telnet 中写东西时,我已经设法让客户端和服务器相互通信,但是...... 我需要一些帮助来处理我发送的数据。
我制作了一个登录脚本来确定用户是否是有效用户。所以我可以写两个词,如“myname”“space”“mypassword”,我得到一个绿灯并返回一个有效的用户。但是当我只写一个字,然后按回车键时,它给了我: Exeption in thread... java.lang.Array.IndexOutOfBoundsExeption EXEPT for when I write exit or logout!
(所有用户都在脚本中硬编码,以便于测试。(登录脚本本身工作正常,当我写错时返回有效用户=假。)这是我的代码。添加了一些伪代码,因为我我不是 100% 确定要做什么……;)
String telNetCommand = dataIn.readLine();
System.out.println(telNetCommand);
String dataInArray[] = telNetCommand.split(" ");
user.isValid(dataInArray[0], dataInArray[1]);
if (dataInArray[1] == "\n") {
//Ignore login request and continue telnet-logging?
}
客户端应用程序对每个命令都有一个按钮,例如:
“每隔 n 秒向我发送一次数据”,或“每隔 n 秒向我发送一批数据。如果命令等于退出,或注销 -> 中断操作....
// --------------// USER INPUT FROM CLIENT APP //--------------------------//
// --------------// CONTINUE ? //----------------------------//
if (command.equals("CONTINUE")) {
continueSession();
else { //..Kill session
}
}
// --------------// SKIP <N> //----------------------------//
if (command.equals("SKIP_N")) {
skipEveryNthData();
}
// --------------// BATCH <N> //---------------------------//
if (command.equals("BATCH_N")) {
batchEveryNthData();
}
// --------------// LOGG OUT #1 //-------------------------//
if (command.equals("logout") || command.equals("exit")) {
break;
}
也许我现在有点困惑,但我认为我需要将所有数据放入一个数组中,并检查
if
dataInArray[0] == "CONTINUE"
dataInArray[0] == "SKIP_N", or
dataInArray[0] == "BATCH_N"
(then send some data back)...
和...
if dataInArray[1] == "enter" ("\n") execute the single word commands ...??
if dataInArray[0] == "LOG_IN" or "PASSWORD" check if valid user is true..
感谢您的帮助和/或提示!:)