【问题标题】:How to test connectivity to ports如何测试与端口的连接性
【发布时间】:2014-08-19 22:27:14
【问题描述】:

我仍然是一名初级程序员,但我喜欢在练习的同时进行实验和学习。我经常玩英雄联盟,这是当今最大的在线游戏。有时这个游戏的服务器离线,我的想法是制作一个 java 程序来检查游戏是否在线(端口打开),然后告诉我游戏是否在线。由于我是一个初学者程序员,我对端口/网络地址的理解仍然缺乏一点,我想知道是否有人可以解释或帮助我实现我的目标。如果是通过解释或提供有用的链接,我愿意接受一切!

提前致谢,

鲍里斯

【问题讨论】:

    标签: java eclipse networking ports


    【解决方案1】:

    有一些工具可以检查服务器是否处于活动状态。

    最基本的就是在CMD里ping:

    ping stackoverflow.com(如果您有域)

    ping 198.252.206.16(如果你有 IP)

    如果你看到这样的东西,那么服务器还活着并给出响应: 198.252.206.16 的 Ping 统计信息: 数据包:发送 = 4,接收 = 4,丢失 = 0(丢失 0%), 大约以毫秒为单位的往返时间: 最小值 = 142 毫秒,最大值 = 145 毫秒,平均值 = 143 毫秒

    但是如果你看到这个,那么服务器或你的互联网连接有问题: 请求超时。

    还有一些其他工具,例如 Hercules,可以测试服务器是否存活。

    如果你还是确定自己用java写程序,可以尝试新建一个java.net.Socket。如果该行抛出任何异常,那么您将无法连接到服务器。要管理此问题,您应该使用“try-catch”块。

    【讨论】:

    • 感谢您的回复!我会看看这个,看看它是否是我正在寻找的。​​span>
    【解决方案2】:

    你可以使用java socket来检测端口是活还是死:

    import java.io.IOException;
    import java.net.Socket;
    
    public class PortDetect {
    public static void main(String[] args) {
        try {
            new Socket("1.2.3.4", 8080);
            System.out.println("alive");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("dead");
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多