2022-8-11 第一组 (≧∇≦) 学习笔记

1.网络通信(网络编程)

  • 服务器:是一台低配的电脑
  • 客户端:可以是电脑,手机,平板,网页
  • 在自己的电脑上搭建服务器环境,我们的电脑既是服务器,又是客户端

1.1 Socket编程

  • socket编程是建立在TCP/IP协议上

    • 在网络环境下访问其他的主机

      • 通过IP地址+端口号形式可以访问其他的主机
      • 通过指令控制台CMD:ipconfig查看IPv4地址,是当前局域网下的ip地址
    • 一台电脑可以有多个端口号,每个端口号的程序也可以不同

    • Socket通信的服务端也是一个对象;ServerSocket

    • TCP/IP

      •     // 服务端
            @Test
            public void test01() throws IOException {
                // 创建一个服务器对象绑定在8888端口
                ServerSocket serverSocket = new ServerSocket(8888);
                System.out.println("服务器已启动");
                // 服务器在等待客户端连接
                Socket accept = serverSocket.accept();
                InputStream inputStream = accept.getInputStream();
                OutputStream o = new FileOutputStream("c:/a.jar", true);
                byte[] bytes = new byte[1024];
                while ( inputStream.read(bytes) != -1) {
                    o.write(bytes);
                }
                System.out.println(accept);
                o.close();
                inputStream.close();
                accept.close();
            }
            // 客户端
            @Test
            public void test02() throws IOException {
        
                Socket socket = new Socket();
                socket.connect(new InetSocketAddress(InetAddress.getLoopbackAddress(), 8888));
        
                System.out.println("客户端已启动");
                // 客户端发送数据给服务器
                OutputStream outputStream = socket.getOutputStream();
                InputStream inputStream = new FileInputStream(new File("c:/commons-io-2.6.jar"));
        
                byte[] bytes = new byte[1023];
                int len;
        
                while ((len = inputStream.read(bytes)) != -1) {
                    outputStream.write(bytes, 0, len);
                }
        
                inputStream.close();
                outputStream.close();
                socket.close();
            }
        

1.2 UDP

  • 不可靠的传输协议

  •     // 客户端
        @Test
        public void test01() throws IOException {
            DatagramSocket datagramSocket=new DatagramSocket();
            String string="发送的消息";
            byte[] bytes=string.getBytes();
            // 构建成一个数据报文
            DatagramPacket packet=new DatagramPacket(bytes,0,
                    bytes.length, InetAddress.getLocalHost(),9999);
            datagramSocket.send(packet);
            System.out.println("数据发送成功");
            datagramSocket.close();
    
        }
        // 服务端
        @Test
        public void test02() throws IOException {
            // 服务器指定端口号
            DatagramSocket datagramSocket=new DatagramSocket(9999);
            byte[] bytes=new byte[1024*1024];
            DatagramPacket packet=new DatagramPacket(bytes,0,bytes.length);
            datagramSocket.receive(packet);
            System.out.println(new String(packet.getData(),0,packet.getLength()));
            datagramSocket.close();
        }
    

1.3 URL

        URL url=new URL("https://192.168.1.1:8888");
        // 获取协议
        System.out.println(url.getProtocol());
        // 获取地址
        System.out.println(url.getHost());
        // 获取端口号
        System.out.println(url.getPort());

1.4 web

  • 软件架构
    • C/S架构:Client/Server 客户端/服务器 ——QQ,腾讯会议,网游【需要下载】
    • B/S架构:Browser/Server 浏览器/服务器——各种网页【不需要下载】
  • 移动互联的时代——以手机端为主,C/S架构
    • Java主要要做的就是架构里的Server端
      • 静态资源:所有用户访问后,得到的结果都是一样的。——html
      • 动态资源:每个用户访问后,得到的结果是不一样的。——爱奇艺
  • web服务器:
    • 接受用户的请求,处理请求,给出响应。
  • 本机的ip地址
    • cmd——ipconfig
    • 127.0.1.1——本机(建议)
    • localhost——本机【前提:你的电脑要联网(热点,网线),要激活一下网卡】
  • 浏览器访问本机——127.0.1.1:8080

本文作者:(≧∇≦)(≧∇≦)(≧∇≦)

本文链接:https://www.cnblogs.com/gycddd/p/16577572.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   (≧∇≦)(≧∇≦)(≧∇≦)  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起