栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 网络编程--Java笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 网络编程--Java笔记

目录

一.网络

1.网络

2.ip

3.网络通信协议

二.InetAddress

三.Socket

1.TCP 网络通信

 2.UDP 网络通信


一.网络

1.网络

①.网络:两台或多台设备通过一定物理设备连接起来构成了网络。网络分为

局域网:覆盖范围最小,一个教室或机房

城域网:覆盖范围较大,一个城市

广域网:覆盖范围最大,一个国家甚至一个星球(万维网)

②.网络通信:两台设备之间通过网络实现数据传输,将数据从一台设备传输到另一个设备,(java.net包)

2.ip

①.ip地址:标识网络中的每一台计算机。127.0.0.1为本机地址

②.IP地址的表示形式为:点分十进制 x.x.x.x,每个数范围:0--255

③.ip地址的组成:网络地址 + 主机地址

④.ipv4分类

 ⑤.ipv6:是用于代替 ipv4 的下一代 ip 协议,由于 ipv4 最大的问题 在于网络地址资源有限,严重制约了互联网的应用和发展,ipv6 的出现 不仅能解决网络地址资源数量的问题,也能解决多种接入设备连入互联网的障碍

3.网络通信协议

①.TCP/IP协议(传输控制协议):由网络层的IP协议和传输层的TCP协议组成的

②.TCP 和 UDP

二.InetAddress
1.getLocalHost()获取本机 InetAddress 对象
2.getByName()根据指定主机名/域名获取 ip 地址对象
3.getHostName()获取 InetAddress 对象的主机名
4.getHostAddress ()获取 InetAddress 对象的地址

        // 1.getLocalHost()获取本机 InetAddress 对象
        InetAddress i = InetAddress.getLocalHost();
        System.out.println(i);

        // 2.getByName()根据指定主机名/域名获取 ip 地址对象
        InetAddress.getByName("www.baidu.com");

        // 3.getByName()获取 InetAddress 对象的主机名
        System.out.println(i.getHostName());

        // 4.getHostAddress ()获取 InetAddress 对象的地址
        System.out.println(i.getHostAddress());

三.Socket

①.Socket (套接字)开发网络应用程序被广泛采用

②.通信的两端都要有 Socket ,是两台机器间的端点

③.网络通信其实是 Socket 间的通信

④.Socket 允许程序把网络连接当成一个流,数据在两个 Socket 间通过 IO 传输

⑤.一般主动发起通信的为 客户端,等待通信的为 服务端

1.TCP 网络通信

当客户端连接到服务端后,客户端是通过一个端口和服务端进行通讯的,这个端口是TCP/IP来分配的,是随机的

netstat 指令:①.netstat-an 可以查看当前主机网络情况(端口监听 和 网络连接)

②.netstat-an | more 可以分页显示

③.Listening表示某个端口在监听,如果有一个客户端连接到该端口,就会显示一条连接信息

        //服务端
        ServerSocket Ss = new ServerSocket(9999);
        System.out.println("aaaaa");
        Socket s = Ss.accept();//接收
        InputStream in = s.getInputStream();

        BufferedInputStream bis = new BufferedInputStream(in);
        BufferedOutputStream bos = new BufferedOutputStream(new                 
                                    FileOutputStream("E:\qq2.jpg"));

        int i;
        byte[] b = new byte[1024];
        while ((i = bis.read(b)) != -1) {
            bos.write(b, 0, i);
        }

        //关闭流
        Ss.close();
        bos.close();
        s.close();
        //客户端
        Socket s = new Socket(InetAddress.getLocalHost(), 9999);//连接服务端
        System.out.println("bbbbb");

        BufferedInputStream bis = new BufferedInputStream(new                     
                                    FileInputStream("e:\qq.png"));
        OutputStream oo = s.getOutputStream();
        BufferedOutputStream bos = new BufferedOutputStream(oo);

        int i;
        byte[] b = new byte[1024];
        while ((i = bis.read(b)) != -1) {
            bos.write(b, 0, i);
        }
        bis.close();
        bos.close();
        s.close();

文件:

 2.UDP 网络通信

①.DatagramSocket 和 DatagramPacket 实现了基于 UDP 协议的网络程序

②.UDP 数据通过 DatagramSocket 发送和接收,不保证能够安全到达目的地,也不能确定什么时候可以到达

③.DatagramPacket 对象封装了 UDP 数据,包含了 发送端的 IP 地址 和端口号以及接收端的 IP 地址 和端口号

④.UDP 协议中给出了完整的数据信息,因此无需建立连接

        
        DatagramSocket Ss = new DatagramSocket(9999);

        byte[] b = new byte[1024];
        DatagramPacket dp = new DatagramPacket(b, b.length);
        Ss.receive(dp);

        b = dp.getData();
        String s = new String(b, 0, b.length);
        System.out.println(s);
        Ss.close();

        DatagramSocket Ss = new DatagramSocket(9998);

        byte[] b = "123".getBytes();
        DatagramPacket dp = new DatagramPacket(b, b.length, 
                    InetAddress.getLocalHost(),9999);
        Ss.send(dp);

        Ss.close();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692227.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号