Java 在try块中返回字符串
我对编程基本上是新手,必须为我的课程用Java创建一个IP扫描器,目前我遇到了困难。在朋友的帮助下,我已经能够从jFrame获取IP地址并将其转换为IP号码。从那里,我将它传递到一个公共字符串中,该字符串扫描地址。它当前将在地址之间循环,没有问题,但是我不知道如何将结果从try块中取出并显示在文本块中,就像您期望的IP扫描器那样。这是我的密码:Java 在try块中返回字符串,java,return,try-catch,Java,Return,Try Catch,我对编程基本上是新手,必须为我的课程用Java创建一个IP扫描器,目前我遇到了困难。在朋友的帮助下,我已经能够从jFrame获取IP地址并将其转换为IP号码。从那里,我将它传递到一个公共字符串中,该字符串扫描地址。它当前将在地址之间循环,没有问题,但是我不知道如何将结果从try块中取出并显示在文本块中,就像您期望的IP扫描器那样。这是我的密码: private void jBtnPSScanActionPerformed(java.awt.event.ActionEvent evt) {
private void jBtnPSScanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//Get text from text boxes
String pingSSIP1 = jTxtPSSIPOne.getText();
String pingSSIP2 = jTxtPSSIPTwo.getText();
String pingSSIP3 = jTxtPSSIPThree.getText();
String pingSSIP4 = jTxtPSSIPFour.getText();
String pingSEIP1 = jTxtPSEIPOne.getText();
String pingSEIP2 = jTxtPSEIPTwo.getText();
String pingSEIP3 = jTxtPSEIPThree.getText();
String pingSEIP4 = jTxtPSEIPFour.getText();
//Convert text into IP Numbers
long ipNumberS = 0;
ipNumberS = ipNumberS + (Long.parseLong(pingSSIP1)*256*256*256) ;
ipNumberS = ipNumberS + (Long.parseLong(pingSSIP2)*256*256) ;
ipNumberS = ipNumberS + (Long.parseLong(pingSSIP3)*256) ;
ipNumberS = ipNumberS + (Long.parseLong(pingSSIP4)) ;
System.out.println (ipNumberS);
long ipNumberE = 0;
ipNumberE = ipNumberE + (Long.parseLong(pingSEIP1)*256*256*256) ;
ipNumberE = ipNumberE + (Long.parseLong(pingSEIP2)*256*256) ;
ipNumberE = ipNumberE + (Long.parseLong(pingSEIP3)*256) ;
ipNumberE = ipNumberE + (Long.parseLong(pingSEIP4)) ;
System.out.println (ipNumberE);
String startAddress = Long.toString(ipNumberS);
String endAddress = Long.toString(ipNumberE);
String returnIP = pingSweep(startAddress, endAddress, ipNumberS, ipNumberE);
System.out.println(returnIP);
//Update jTxtBlock with returnIP and result
}
以及:
公共字符串pingSweep(字符串起始地址、字符串结束地址、长ipNumberS、长ipNumberE)
{
字符串ip=“”;
用于(长currIP=ipNumberS;currIP
提前谢谢
马修,这就是你所拥有的。要在JFrame上显示的字符串?是吗 您可以在JFrame上添加标签,并将字符串传递给该标签 有关详细信息,请参阅 注:如果您想使用inputText、textArea或任何您喜欢和需要的东西,使用标签只是一个显示只读文本的建议 更新 OP确认他正在使用一个文本区域
提示:jTextArea.append(host.isRechable)方法在ping收到响应时将新值追加到jTextArea
jTxtBlock
的类型是什么?是不是JTextArea
?这不是一个猜谜游戏。我很抱歉,一个新手在这个论坛上复制和粘贴代码时,包括了他的验证。至少我向你们展示了我在看什么,如果我错了,也许有人能帮助我看一些不同的东西。我只需要一点帮助。欺负别人。@MatthewCurtis常见问题解答是给新手的。@MatthewCurtis他不是欺负你,他只是简略地指出,当你寻求帮助或某种帮助时(在任何论坛,不仅仅是这样),你是在利用别人的时间为自己谋利,在这种情况下,你有社会责任尽可能减少你的潜在助手的努力。如果你知道任何对解决问题没有帮助的事情都没有最小化你的代码,那么你不仅没有履行你的义务,而且你在浪费别人的时间。这不会让人们喜欢帮助你。+1说得好,@mah。。。这一切都是关于给予和索取的,因为不涉及金钱,所以它必须是社会性的。不,我希望获取host.isReachable的结果,并将其显示在原始表单的文本区域中,即当用户按下jBtnPSScanActionPerformed时。当前System.out.println()仅显示最终结果,而不是每次ping的每个单独结果。我希望每个结果都能显示在文本区域中,因为它是一个文本区域。@MatthewCurtis。那真的不重要。因此,您实际上要做的是,当按下按钮时,在文本区域显示ping?确切地说是@Mukul Goel,它需要执行ping扫描以确定网络上使用的地址。例如:192.168.0.1-成功192.168.0.2-失败192.168.0.3-成功192.168.0.4-成功192.168.0.5-失败192.168.0.6-失败…等等。My try存储最终结果,可以很容易地显示出来,但是我需要每个结果,无论是失败还是通过,都需要在文本区域中查看,并在找到结果时附加。@MatthewCurtis,尝试使用jTextArea.append(host.isRechable)
方法将新值附加到jTextArea
public String pingSweep (String startAddress, String endAddress, long ipNumberS, long ipNumberE)
{
String ip = "";
for (long currIP = ipNumberS; currIP < ipNumberE; currIP++)
{
try {
ip = Long.toString(currIP) ;
System.out.println(currIP);
InetAddress host = InetAddress.getByName(ip);
System.out.println("Host Reachable? " + host.isReachable(4000));
System.out.println(currIP);
System.out.println(ip);
ip = ip + " " + currIP + " " + host.isReachable(4000);
}
catch (UnknownHostException ex) {
System.err.println(ex);
break;
}
catch (IOException ex) {
System.err.println(ex);
break;
}
}
return ip;
}