Java网络程序设计 精简启蒙版

  一、基础知识

  1.TCP

  2.UDP

  二、IP地址封装

  1.InetAddress类的常用方法

getLocalHost()                 返回本地主机的InetAddress对象                 InetAddress类型
getByName(String host)         获取指定主机名称的IP地址                       InetAddress类型
getHostName()                  获取此主机名                                 String
getHostAddress()               获取主机IP地址                               String
isReachable(int timeout)       在timeout指定的毫秒时间内,测试IP地址是否可达    Boolean

  2.示例1:测试IP地址从“192.168.131.1”到“192.168.131.150”范围内所有可以访问的主机的名称,如果对方没有安装防火墙,并且网络连接正常的话,都可以访问的。从输出可以看出,192.168.131.1是本地主机的IP,其他地址都不能联通,可能是因为1000毫秒太短或者对方主机装有防火墙的原因。

package bigjunoba.bjtu.iptoname;

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class IPToName {
    public static void main(String[] args) {
        String IP = null;
        for (int i = 1; i <= 150; i++) {
            IP = "192.168.131." + i;                        //生成IP字符串
            try {
                InetAddress host;
                host = InetAddress.getByName(IP);            //获取IP封装对象
                if (host.isReachable(1000)) {               //用1秒的时间测试IP地址是否可达
                    String hostName = host.getHostName(); 
                    System.out.println("IP地址" + IP + "的主机名称是:" + hostName);
                }
            } catch (UnknownHostException e) {              //捕获未知主机异常
                e.printStackTrace();
            } catch (IOException e) {                       //捕获输入输出异常
                e.printStackTrace();
            }
        }
        System.out.println("搜索完毕!");
    }
}
IP地址192.168.131.1的主机名称是:BigjunOba
搜索完毕!

  三、套接字

  套接字(Socket)是代表计算机之间网络连接的对象,用于建立计算机之间的TCP连接,使计算机之间可以建立连接并实现网络通信。

  1.服务器端套接字

  服务器端套接字是SercerSocket类的实例对象,用于实现服务器缓存。ServerSocket类将监视指定的端口,并建立客户端到服务器端套接字的连接,也就是客户负责呼叫任务。

  (1)创建服务器端套接字

  创建服务器端套接字可以使用4中构造方法。

  ①ServerScoket()

  默认构造方法,可以创建未绑定端口号的服务器套接字。服务器套接字的所有构造方法都需要处理IOException异常。

  一般格式为:

            try {
                ServerSocket server = new ServerSocket();
            } catch (IOException e) {
                e.printStackTrace();
            }

  ②ServerScoket(int port)

            try {
                ServerSocket server = new ServerSocket(9527);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

  ③

            try {
                ServerSocket server = new ServerSocket(9527, 300);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

  ④

            try {
                ServerSocket server = new ServerSocket(9527, 300);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

  (2)创建接收套接字连接

  2.客户端套接字

  (1)创建客户端套接字

  (2)发送和接收数据

  四、数据报

  1.DatagramPacket

  2.DatagramSocket

  五、网络聊天程序开发

猜你喜欢

转载自www.cnblogs.com/BigJunOba/p/9016769.html