java基础17

GUI

GUI用图形的方式,来显示计算机的操作界面,这样更方便更直观。

CLI就是常见的Doc命令行操作,需要记一些常用的命令,操作不直观。

Java为GUI提供的对象都存在与java.awt和java.swing中。

java.awt:抽象窗口工具包,需要调用本地系统方法实现功能,属于重量级组件。

java.swing:是对java.awt工具包的升级。

案例:创建一个窗口,并在窗口中添加一个按钮。

        Frame f = new Frame("my frame");
        f.setBounds(400, 200, 500, 400);
        f.setLayout(new FlowLayout());//设置流式布局
        Button but = new Button("button");
        f.add(but);
        f.setVisible(true);

事件监听机制的组成:1.事件源  2.事件   3.监听器   4.处理方式

网络编程

网络模型

OSI参考模型(七层:1.物理层;2.数据链路层;3.网络层;4.传输层;5.会话层;6.表示层;7.应用层)

TCP/IP参考模型(应用层,传输层,网际层,主机至网络层)

扫描二维码关注公众号,回复: 5448126 查看本文章

网络通讯要素

IP地址:网络中设备的标识,不易记忆,可用主机名,本地回环地址:127.0.0.1   主机名:localhost

端口号:用与标识进程的逻辑地址,不同进程的标识,范围:0-65535       windows系统:0-1024

传输协议:通讯的规则,常见规则:TCP(建立连接,形成传输数据的通道;在连接中进行大数据量的传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会降低),UDP(将数据及源和目的封装成数据包中,不需要建立连接;每个数据包大小限制在64k中,因为无连接,是不可靠协议,不需要建立连接,速度快)

Socket

Socket就是为网络服务提供的一种机制,通信的两端都有Socket,网络通信就是Socket之间的通信,数据在两个Socket间通过IO传输。

发送端相关代码:

        //1.UDPSocket服务,使用DatagramSocket对象
        DatagramSocket ds = new DatagramSocket(8888);
        
        //2.将要发送的数据封装到数据包中
        String str = "udp传输演示:我来了";
        //使用DatagramPacket将数据封装到该对象的包中
        byte[] buf = str.getBytes();
        
        DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.5"),10000);
        //3.通过UDP的socket服务将数据包发送出去,使用send方法。
        ds.send(dp);
        //4.关闭资源
        ds.close();

接收端代码:

        //1.建立UDP socket服务
        DatagramSocket ds = new DatagramSocket(10000);
        
        //2.创建数据包
        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf,buf.length);
        
        //3.使用接收方法将数据存储到数据包中
        ds.receive(dp);//阻塞式方法
        
        //4.通过数据包对象的方法,解析其中的数据,例如:地址,端口,数据内容
        String ip = dp.getAddress().getHostAddress();
        int port = dp.getPort();
        String text = new String(dp.getData(),0,dp.getLength());
        
        System.out.println(ip+":"+port+":"+text);
        
        //5.关闭资源
        ds.close();

猜你喜欢

转载自blog.csdn.net/weixin_42581821/article/details/87517933