欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

黑马程序员_GUI和网络编程知及正则知识要点 Gui网络编程sockettcp/ipudp 

程序员文章站 2024-02-01 20:59:46
...

---------------------- android培训java培训 、期待与您交流! ----------------------

 

 

GUI

Graphical User Interface( 图形用户接口 )

 

java.Awt:Abstract Window ToolKit( 抽象窗口工具包 ), 要调用本地系统方法实现功能 , 和系统依赖性强

javax.Swing: AWT 基础上建立的 , 其中提供了更多组件 , 而且完全由 Java 实现 , 增强移植性 , 属轻量级控件 .

 

创建图形化界面 :

1.       创建 frame 窗体 .

2.       对窗体进行基本设置

3.       定义组件

4.       将组件通过窗体 add 方法添加到窗体中

5.       让窗体显示 . 通过 setVisable

 

事件监听机制组成

事件源 : 就是 awt 包或者 swing 包中那些图形界面组件 .

事件 , 每一个事件源都有自己特有的对应事件和共性事件

监听器 , 将可以触发某一事件的一些动作都已经封装到了监听器中 .

事件处理 : 我们要做的就是对产生的动作进行处理 .

 

生成 jar 包双击执行      -cvfm my.jar 1.txt mymenu

my.jar 是要生成的 jar 包文件名称 .

1.       1.txt 是加载配置信息 , 里边固定格式 MAIN-Class: mymenu.MyMenuTest

: 后面要加一个空格 , 在文件最后要加一个回车 .

2.    mymenu .class 文件存放的文件夹 .

 

 

网络编程 :

网络模型

OSI 参考模型

TCP/IP 参考模型

网络通讯要素

       IP 地址

       端口号

       传输协议

 

InetAddress  ip=InetAddress.getByname(“127.0.0.1”);

ip.getHostAddress();      ip.getHostName();

 

UDP: 将数据源和目的都封装在包里 , 不需要建立连接 , 发送速度快 , 是不可靠协议 , 每个数据包的大小限制在 64K .

TCP: 需要建立连接形成传输通道 , 发送效率会稍低 , 要三次握手建立连接是可靠协议 . 在连接中可以进行大数据量传输 .

 

Socket 就是为网络服务提供的一种机制 .

通信的两端都有 Socket

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

数据在两个 Socket 间通过 IO 传输

 

DatagramPacket 此类表示数据报包。

数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。

UDP 发送 :

思路 :

1.       建立 udpsocket 服务

2.       提供数据 , 并将数据封装到数据包中 .

3.       通过 socket 服务的发送功能 , 将数据包发出去

4.       关闭资源 .

UDP 接收思路 :

1.       定义 udpsocket 服务

2.       定义一个数据包 , 因为要存储接收到的字节数据 , 因为数据包对象中有更多功能可以提取字节数据中的不同数据信息 .

3.       通过 socket 服务的 receive 方法将收到的数据存入已经定义好的数据包中 .

4.       通过数据包对象的特有功能 , 将这些不同的数据取出 , 打印在控制台上 .

5.       关闭资源 .

 

接收数据用的阻塞式方法

广播地址 .255 代表这个段里边的广播地址 .

 

TCP 传输

Socket ServerSocket

建立客户端和服务端

建立连接后 , 通过 Socket 中的 IO 流进行数据传输

关闭 socket

 

TCP 分客户端和服务端

客户端 : 该对象建立时就可以去连接指定的主机 . 因为 tcp 是面向连接的 , 所以在建立 socket 服务时 , 就要有服务端存在并连接成功 , 形成通路后在该通道进行数据的传输 .

思路 :

1.       建立客户端 socket 服务 , 并指定要连接的主机和端口 .

2.       为了发送数据 , 应该获取 socket 流中的输出流 .

 

服务端 :

1.       建立服务端 ServerSocket(); 并监听一个端口

2.       获取连接过来的客户端对象 . 通过 accept 方法来完成 .

3.       客户端如果发过来数据 , 那么服务端要使用对应的客户端对象 , 并获取到该客户端对象读取流来读取发过来的数据 .

客户端和服务端的流是反向对立的 .

TCP 传输协议结束要结束通讯可以禁用流 , 也就是等于加入结束标记

禁用流的两种方式 :shutdownInput(); shutdownOutput();

分析客户端和服务端得出服务端要开启多线程运行 , 让每一个连接的客户端都有独立的线程

可以把和客户端交互的代码封装在一个类中 , 此类实现了 Runnable 接口 . 要通讯的过程中要考虑各种实际情况在线程中做出相应的处理 .

 

 

正则表达式 : 符合一定规则的表达式 .

作用 : 用于专门操作字符串 .

特点 : 用一些特定的符号来表示一些代码操作 . 这样就简化了书写 .

好处 : 可以简化对字符串的复杂操作 .

弊端 : 符号定义越多 , 正则越长 , 阅读性越差 .

 

具体操作功能 .

1.       匹配 : String   matches 方法 .

2.       切割 : String split    组的概念 .(.)\\1+  () 来表示 . 遍号默认从 1 开始 , 要想使用以前的通过 \n 来完成 . 区分组看左括号有几个就是几组 , 最左括号是第一组 , 依次推 .

3.       替换 :String   replaceAll   $1 拿前一个符号的第一组 .

4.       获取 : 将字符串中的符合规则的子串取出 .

操作步骤 :

1.       将正则表达式封装成对象 .

2.       让正则对象和要操作的字符串关联 .

3.       关联后 , 获取正则匹配引擎 .

4.       通过引擎对符合规则的子串进行操作 , 比如取出 .

 

 

---------------------- android培训java培训 、期待与您交流! ----------------------