zoukankan      html  css  js  c++  java
  • 网络编程系列教材 (一)- IP地址与端口概念

    IP地址与端口概念

    步骤1:IP地址
    步骤2:端口
    步骤3:获取本机IP地址
    步骤4:ping命令
    步骤5:使用java 执行ping命令
    步骤6:练习-判断本网段有多少可用的ip地址
    步骤7:答案-判断本网段有多少可用的ip地址

    步骤 1 : IP地址

    在网络中每台计算机都必须有一个的IP地址; 
    32位,4个字节,常用点分十进制的格式表示,例如:192.168.1.100 
    127.0.0.1 是固定ip地址,代表当前计算机,相当于面向对象里的 "this"

    IP地址

    步骤 2 : 端口

    两台计算机进行连接,总有一台服务器,一台客户端。
    服务器和客户端之间的通信通过端口进行。如图:

    ip地址是 192.168.1.100的服务器通过端口 8080
    与ip地址是192.168.1.189的客户端 的1087端口通信

    端口

    步骤 3 : 获取本机IP地址

    获取本机IP地址

    package socket;

    import java.net.InetAddress;

    import java.net.UnknownHostException;

    public class TestSocket {

        public static void main(String[] args) throws UnknownHostException {

            InetAddress host = InetAddress.getLocalHost();

            String ip =host.getHostAddress();

            System.out.println("本机ip地址:" + ip);

        }

    }

    步骤 4 : ping命令

    使用ping判断一个地址是否能够到达
    ping不是java的api,是windows中的一个小工具,用于判断一个地址的响应时间

    如图
    ping 192.168.2.106 可以返回这个地址的响应时间 time<1ms表示很快,局域网一般就是这个响应时间

    ping 192.168.2.206 返回Request timed out表示时间较久都没有响应返回,基本判断这个地址不可用

    ping命令

    步骤 5 : 使用java 执行ping命令

    借助 Runtime.getRuntime().exec() 可以运行一个windows的exe程序
    如图,使用java运行 ping 192.168.2.106,返回这样的字符串

    使用java 执行ping命令

    package socket;

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

    public class TestSocket {

        public static void main(String[] args) throws IOException {

            Process p = Runtime.getRuntime().exec("ping " "192.168.2.106");

            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

            String line = null;

            StringBuilder sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                if (line.length() != 0)

                    sb.append(line + " ");

            }

            System.out.println("本次指令返回的消息是:");

            System.out.println(sb.toString());

        }

    }


    更多内容,点击了解: https://how2j.cn/k/socket/socket-ip-port/399.html

  • 相关阅读:
    第2季:从官方例程深度学习海思SDK及API
    H.264帧结构详解
    Linux内核链表
    在Sqlite中通过Replace来实现插入和更新
    mysql 里随机生成时间
    搭建Cordova + Ionic + WebStorm环境开发Web App应用
    Angular Local Storage 使用方法
    angularJS中controller与directive双向通信
    ui-router传递参数
    Sequelize 和 MySQL 对照
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615442.html
Copyright © 2011-2022 走看看