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参考模型(应用层,传输层,网际层,主机至网络层)
网络通讯要素
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();