Java——ping & telnet實現

来源:https://www.cnblogs.com/shea/archive/2018/03/23/8631789.html
-Advertisement-
Play Games

ping & telnet 實現類: import org.springframework.data.web.JsonPath; import java.io.IOException; import java.net.*; public class PTUtil { /*** * ping操作 * ...


ping & telnet 實現類:

import org.springframework.data.web.JsonPath;

import java.io.IOException;
import java.net.*;

public class PTUtil {
    /***
     *  ping操作
     * @param hostname
     * @param timeout in milliseconds
     * @return
     */
    public static JsonResult pingResult(String hostname,Integer timeout){
        JsonResult jsonResult = new JsonResult();
        try {
            InetAddress address = InetAddress.getByName(hostname);
            boolean flag = address.isReachable(timeout);
            if(flag){
                jsonResult.setMessage("ping結果:the address is reachable.");
            }else{
                jsonResult.setCode(Constants.ResultCode.EXCEPTION);
                jsonResult.setMessage("ping結果:the address is unreachable.");
            }
        } catch (UnknownHostException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("ping結果:UnknownHostException:"+e.getMessage());
        } catch (IOException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("ping結果:IOException:"+e.getMessage());
        }
        return jsonResult;
    }
    /***
     *  telnet 操作
     * @param hostname
     * @param timeout in milliseconds
     * @return
     */
    public static JsonResult telnetResult(String hostname,Integer port,Integer timeout){
        JsonResult jsonResult = new JsonResult();
        try {
            Socket server = new Socket();
            InetSocketAddress address = new InetSocketAddress(hostname,port);
            server.connect(address, timeout);
            server.close();
            jsonResult.setMessage("telnet結果:success!");
        }catch (UnknownHostException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("telnet結果:UnknownHostException:"+e.getMessage());
        } catch (IOException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("telnet結果:IOException:"+e.getMessage());
        }
        return jsonResult;
    } 
}
View Code

相關類:

public class JsonResult {
    
    private String code;//結果編碼
    private String message;//結果描述
    private Object data;
    
    public JsonResult() {
        this.setCode(Constants.ResultCode.SUCCESS);
        this.setMessage(Constants.ResultCode.SUCCESS.msg());
        
    }
    
    public JsonResult(Constants.ResultCode code) {
        this.setCode(code);
        this.setMessage(code.msg());
    }
    
    public JsonResult(Constants.ResultCode code, String message) {
        this.setCode(code);
        this.setMessage(message);
    }
    
    public JsonResult(Constants.ResultCode code, String message, Object data) {
        this.setCode(code);
        this.setMessage(message);
        this.setData(data);
    }
    
    public String getCode() {
        return code;
    }
    public void setCode(Constants.ResultCode code) {
        this.code = code.val();
        this.message = code.msg();
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}
View Code
public class Constants {
    /***
     *刪除狀態
     */
    public static enum DeleteStatus{
        NORMAL("0","NORMAL","正常"),DELETE("1","DELETE","刪除");
        private DeleteStatus(String value,String name,String desc){
            this.value=value;
            this.name=name;
            this.desc=desc;
        }
        private final String value;
        private final String name;
        private final String desc;

        public String getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

        public String getDesc() {
            return desc;
        }
    }

    /***
     * Result code
     */
    public static enum ResultCode {
        /** 成功 */
        SUCCESS("200", "成功"),
        NULL_DATA("205","無數據"),
        /** 沒有登錄 */
        NOT_LOGIN("400", "沒有登錄"),

        /** 發生異常 */
        EXCEPTION("401", "發生異常"),

        /** 系統錯誤 */
        SYS_ERROR("402", "系統錯誤"),

        /** 參數錯誤 */
        PARAMS_ERROR("403", "參數錯誤 "),

        /** 不支持或已經廢棄 */
        NOT_SUPPORTED("410", "不支持或已經廢棄"),

        /** AuthCode錯誤 */
        INVALID_AUTHCODE("444", "無效的AuthCode"),

        /** 太頻繁的調用 */
        TOO_FREQUENT("445", "太頻繁的調用"),

        /** 未知的錯誤 */
        UNKNOWN_ERROR("499", "未知錯誤"), 
      

        private ResultCode(String value, String msg){
            this.val = value;
            this.msg = msg;
        }

        public String val() {
            return val;
        }

        public String msg() {
            return msg;
        }

        private String val;
        private String msg;
    }
 
}
View Code

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 昨天被室友拖著去吃雞去了,所以沒有學習,該反省。只有今天多學習一點,將昨天的補回來。 今天學習了python的多繼承。 覺得多繼承還是有點難,今天在學習多繼承的實收,一不小心將一個父類的構造函數的名稱寫錯了,然後就出現了bug,找了好久,才發現是上面寫錯了,結果編輯器報錯的地方與我真正出錯的地方差了 ...
  • 一、id 比較的數值,輸出結果為True 或者 False is比較的是記憶體地址 id 查看記憶體地址 記憶體地址相當與門牌號a = 1000 b = 1000 print(a == b) # == 比較的是數值 #is 比較的是記憶體地址。 # print(a is b) #查看記憶體地址id() # p ...
  • xilinx使用高電平複位 altera使用低電平複位 原因:Xilinx 寄存器的SR控制端是高電平有效的。如果RTL代碼採用了低電平有效的複位模式,綜合器將在複位信號驅動寄存器SR控制端之前的插入一個反相器(interver)。你必須使用一個查找表(look up table)來實現反向器,以利 ...
  • 首先我們瞭解一個名詞ORM,全稱是(Object Relational Mapping),即對象關係映射。ORM的實現思想就是將關係型資料庫中表的數據映射成對象,以對象的形式展現,這樣開發人員就可以把對資料庫的操作轉化為對這些對象的操作。Hibernate正是實現了這種思想,達到了方便開發人員以面向 ...
  • 前面小Alan跟大家聊了在Linux伺服器上jdk運行環境的安裝以及redis非關係型資料庫的安裝,今天繼續跟大家聊聊Tomcat的安裝,以及將我們的項目發佈上去併成功的訪問。 第一步:將tomcat的安裝包上傳到伺服器上,tomcat包的下載不用我教了吧,那你乾脆收拾包袱回家種田得了,雖然說回家種 ...
  • 完整的電腦系統包括:應用程式 + 操作系統 + 電腦硬體 一、電腦硬體: 1、五大組成:控制器、運算器、存儲器、輸入設備、輸出設備 控制器:電腦整體的指揮系統 運算器:負責邏輯運算和數學運算 存儲器(I/O):記憶體、外部存儲 輸入設備(I):鍵盤、滑鼠… 輸出設備(0):顯示器、印表機… 2 ...
  • 先上個例題: 描述 使用STL中的優先隊列,將n個點按照橫坐標從小到大順序排序,如果橫坐標相同,按照縱坐標從小到大排序。 輸入 第一行為正整數n,接下來有n行,每行一個點,包含橫坐標和縱坐標,均為整數。 第一行為正整數n,接下來有n行,每行一個點,包含橫坐標和縱坐標,均為整數。 輸出 每組輸出排序後 ...
  • 搞笑系統採用PHP+MySQL實現, 支持電腦版,手機版線上觀看搞笑圖片 有會員制觀看功能 電腦端img: 手機端img: 這是一款不錯的搞笑網站系統源碼 專業的團隊、高效的執行效率 有需要的朋友聯繫我們微信:kjwenlc q:3328752804 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...