目标黑马,我的自学之路:第十一章 GUI和网络编程

一、GUI

       1、计算机与用户交互的方式有两种,一种是命令行,一种是图形化界面,而GUI是图形用户的接口,用图形的方式来显示计算机操作的界面,这样更方便直接,我们把图像化界面的对象都封装在了Java.Awt 和Javax.Swing包中。Awt是抽象接口工具包,它需要调用本地系统方法实现功能,与系统依赖性强,跨平台性较弱,属于重量级控制。Swing是在Awt的基础上建立的一套图形界面系统,其中提供了更多的组件,而且完全有Java实现,增强了移植性,属轻量级控件。

       2、GUI组件

     (1)GUI常用组件对象有:Button按钮、Label标签、Checkbox复选框、TextComponent文本组件、Frame窗体框架、Dialog对话框、FileDialog文件对话框。

     (2)Container是容器,它是一个特殊的组件,该组件中通过add方法添加其他组件进来。

     (3)布局管理器:容器中组件的排放方式就是布局管理器,最常见的布局管理器有流式布局管理器FlowLayout,按照从左到右的顺序排列是Panel的默认布局管理器,边界布局管理器BorderLayout,通过指定方向确定组件的添加位置,是Frame默认的布局管理器,除此之外还有网格布局管理器GirdLayout、卡片布局管理器CardLayout、网格包布局管理器GirdBagLayout。

     (4)Frame窗体框架的设置方法有:setSize设置窗体样式,setLocation设置本地位置,这两项设置也可以通过setBounds方法完成,另外setLayout方法用于设置窗口的布局管理器,当基本设置完成后,可以通过setVisible方法使窗体可见。

     (5)TextArea和TextField用于文本操作,通过setText和getText写入和得到文本框中的内容。

     (6)Dialog对话框不需要通过add方法加入到窗体框架中,通过将窗体框架的引用作为参数传递给Dialog的构造函数的方式使它们产生联系。同样的FileDialog也是通过这种方式建立与窗体框架的联系。

      3、事件监听机制

      事件监听机制的特点:(1)事件源:Awt包或Swing包中的图形界面的组件

                                          (2)事件:每一个事件源都有自己特有的对应事件和共性事件。

                                          (3)监听器:将可以触发某一个事件的动作已经封装到了监听器中

                                          (4)事件处理机制:首先将监听器注册到事件源上,当监听器监听的动作作用到事件源上时就会产生一个事件对象,事件源将事件对象传递给监听器,监听器做出处理。

二、网络编程

       1、网络编程既Socket编程,是为网络服务提供的机制,网络通信其实就是Socket间的通信,数据在Socket之间通过IO进行传输,在传输过程中进行了更细致的功能划分,形成了两种网络模型OSI参考模型和TCP/IP参考模型,OSI参考模型分了七个层次分别为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,TCP/IP参考模型分为四层分别是应用层、传输层、网际层和主机至网络层。

       2、网络通信三大要素:

     (1)IP地址:IP地址是网络中设备的标识,Java通过面向对象的思想将IP地址封装成对象InetAddress,它虽然是一个类,但没有构造方法,可以通过类中的静态方法getLocalHost和getByName方法获得。

     (2)端口号:网络通信中,数据需要发送到指定应用程序,为了标识这些应用程序,对这些应用程序都用数字进行了标识,用于标识进程的逻辑地址,不同的进程都有自己的标识,通常有效标识的范围为0到65535,而其中的0到1024是系统使用或保留的端口。

     (3)传输协议:传输协议是一种通信规则,TCP/IP参考模型中应用层常用传输协议有HTTP、FTP,传输层的有TCP、UDP,网际层则是IP。

       3、两种传输方式:UDP、TCP

    (1)UDP和TCP的区别:UDP是面向无连接,将数据及源和目的封装成数据包传输,不需要进行连接,因为无连接,所以是不可靠协议,但也因为无连接,所以传输速度很快,在传输时每个数据包的大小限制在64K以内,大于64K会自动分包传输(聊天、视频会议、桌面共享)。TCP是面向连接,它传输的前提是建立连接,形成数据传输的通道,建立连接的过程通过三次握手完成,首先客户端向服务器端发送连接请求,服务器端接收到后反馈信息给客户端,客户端收到后再次向服务器端发送信息用以说明接收到了服务器端的信息,这样才可以建立连接,这也决定了TCP是可靠协议,它能进行大数据的传输,因为需要建立连接,所以效率稍低(打电话)。

   (2)UDP发送端建立流程:<1>通过DatagramSocket对象,建立UDP的Socket服务

                                                <2>提供数据,并将数据封装成数据包

                                                <3>通过Socket服务的send方法将数据包发送出去

                                                <4>关闭资源

        UDP接收端的建立流程:<1>通过D阿塔gramSocket对象,建立UDP的Socket对象,同时监听一个端口,其实就是给这个接收端应用程序定义数字标识,明确该应用程序处理的数据

                                                <2>定义一个空的数据包,并接收一个字节数组用于存储接收到的数据

                                                <3>通过Socket服务的receive方法将接收的数据存入已定义好的数据包中

                                                <4>通过数据包的特有方法获取其中的数据

                                                <5>关闭资源

      (3)TCP客户端建立流程:<1>通过Socket对象建立Socket服务,并指定连接的主机和端口

                                                   <2>获取数据并通过Socket中的输出流输出

                                                   <3>获取Socket中的输入流接收服务器端的返回信息

                                                   <4>关闭资源

           TCP服务器端建立流程:<1>通过Socket对象建立Socket服务,并监听一个端口

                                                  <2>获取连接的客户端对象

                                                  <3>获取客户端对象中的输入流读取数据

                                                  <4>获取客户端对象中的输出流输出返回信息

                                                 <5>关闭服务器端(可选)

       在TCP传输中,为了让多个客户端并发访问服务器端,我们将每个客户端都封装到一个单独的线程中,将客户端在服务器端需要执行的代码都封装到继承了Runnable接口的类的run方法中,这样服务器端就可以同时处理多个客户端的请求。                         

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值