• 黑马程序员:Java基础总结----GUI&网络&IO综合开发


    黑马程序员:Java基础总结



    GUI&网络&IO综合开发

      ASP.Net+Android+IO开发 .Net培训 、期待与您交流!





    网络架构

    C/S:Client/Server
    客户端,服务端。
    特点:
    1,需要在客户端和服务端都需要按照编写的软件。
    2,维护较麻烦。
    好处:可以减轻服务端的压力,如网络游戏。

    B/S:Browser/Server
    浏览器 ,服务端。
    1,客户端不用单独编写软件。
         因为客户端用的就是浏览器。
    2,对于软件升级,只要考虑服务端即可。
    弊端:所有的程序都运行在服务端,客户端的浏览器毕竟解析能力较弱。对游戏等

    类 URL

    类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。
    构造:
     URL url = new URL("http://192.168.1.254/myweb/demo.html?name=haha&age=30")
    方法:
     String getFile()
              获取此 URL 的文件名。
    String getHost()
              获取此 URL 的主机名(如果适用)。
    String getPath()
              获取此 URL 的路径部分。
    int getPort()
              获取此 URL 的端口号。
    String getProtocol()
              获取此 URL 的协议名称。
    String getQuery()
              获取此 URL 的查询部

    类 URLConnection

    抽象类  URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接。此类的实例可用于读取和写入此 URL 引用的资源。
    URLConnection openConnection()
              返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
         URL url = new URL("http://192.168.1.254:8080/myweb/demo.html");

              URLConnection conn = url.openConnection();
              System.out.println(conn);
         
     InputStream getInputStream()
              返回从此打开的连接读取的输入流。
        
              InputStream in = conn.getInputStream();
              byte[] buf = new byte[1024];
              int len = in.read(buf);
              System.out.println(new String(buf,0,len));


    演示客户端和服务端。

    1,
    客户端:浏览器 (telnet)
    服务端:自定义。

    2,
    客户端:浏览器。
    服务端:Tomcat服务器。

    3,
    客户端:自定义。(图形界面)
    服务端:Tomcat服务器

    import  java.awt.*;
    import  java.awt.event.*;
    import  java.io.*;
    import  java.net.*;

    public  class  Ts {
            private  Frame  f  ;
            private  TextField  tf  ;
            private  Button  but  ;
            private  TextArea  ta  ;

            private  Dialog  d  ;
            private  Label  lab  ;
            private  Button  okBut  ;

          Ts() {
                init();
          }

            public  void  init() {
                  f  =  new  Frame( "my window"  );
                  f .setBounds(300, 100, 600, 500);
                  f .setLayout(  new  FlowLayout());

                  tf  =  new  TextField(60);

                  but  =  new  Button( "转到" );

                  ta  =  new  TextArea(25, 70);

                  d  =  new  Dialog( f  ,  "提示信息-self"  ,  true );
                  d .setBounds(400, 200, 240, 150);
                  d .setLayout(  new  FlowLayout());
                  lab  =  new  Label();
                  okBut  =  new  Button( "确定" );

                  d .add(  lab );
                  d .add(  okBut );

                  f .add(  tf );
                  f .add(  but );
                  f .add(  ta );

                myEvent();
                  f .setVisible(  true );
          }

            private  void  myEvent() {

                  okBut .addActionListener( new  ActionListener() {
                        public  void  actionPerformed(ActionEvent e) {
                              d .setVisible(  false );
                      }
                });
                  d .addWindowListener(  new  WindowAdapter() {
                        public  void  windowClosing(WindowEvent e) {
                              d .setVisible(  false );
                      }
                });

                  tf .addKeyListener(  new  KeyAdapter() {
                        public  void  keyPressed(KeyEvent e) {
                              try  {
                                    if  (e.getKeyCode() == KeyEvent. VK_ENTER )
                                        showDir();
                            }  catch  (Exception ex) {
                            }

                      }
                });

                  but .addActionListener( new  ActionListener() {
                        public  void  actionPerformed(ActionEvent e) {
                              try  {
                                  showDir();
                            }  catch  (Exception ex) {
                            }

                      }
                });

                  f .addWindowListener(  new  WindowAdapter() {
                        public  void  windowClosing(WindowEvent e) {
                            System. exit(0);
                      }
                });
          }

            private  void  showDir()  throws  Exception {

                  ta .setText(  "" );
                String urlPath =  tf .getText();  // http://192.168.1.254:8080/myweb/demo.html

                URL url =  new  URL(urlPath);

                URLConnection conn = url.openConnection();

                InputStream in = conn.getInputStream();

                  byte [] buf =  new  byte [1024];

                  int  len = in.read(buf);

                  ta .setText(  new  String(buf, 0, len));

          }

            public  static  void  main(String[] args) {
                  new  Ts();
          }
    }




      ASP.Net+Android+IO开发 .Net培训 、期待与您交流!

  • 相关阅读:
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    迷宫问题 POJ 3984
    UVA 820 Internet Bandwidth (因特网带宽)(最大流)
    UVA 1001 Say Cheese(奶酪里的老鼠)(flod)
    UVA 11105 Semiprime Hnumbers(H半素数)
    UVA 557 Burger(汉堡)(dp+概率)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3177720.html
Copyright © 2020-2023  润新知