概述
本文是使用GUI创建了这么一个对话窗体,其中涉及的知识有GUI(窗体,键盘监听等)和一些基础知识(多线程,网络编程(UDP通信)等)。下面首先来说一下UDP通信。(至于为什么不说GUI,是因为GUI无论实在工作中还是面试中都不会用到,因此在这里就不阐述GUI了!)
网络编程
众所周知网络的产生拉近了人与人之间的距离,从最开始的简单通信到今天,而通信需要一定的规则协议,我们把这种协议称之为通信协议。此外网络编程知识中的:IP,端口号等我在这里就不在过多叙述,一个URL(俗称网址)的组成必定少不了它们!这里主要针对于本文去稍加阐述一下UDP和TCP两种协议!
基于传输层的API
TCP
概念
TCP为传输控制协议,通常是一个面向连接的协议,它可以把数据当做双向字节流进行交换以便于达到传输的目的。主要用于文件下载,如我们常用的迅雷等软件。
如何实现通信
ServerSocket类和Socket(套接字)类结合IO流的知识来实现通信:会用到ServerSocket中的accept()方法和Socket中的获取输入输出流相关方法等)。
UDP
概念
UDP为用户数据包协议,是一种面向无连接的协议,一次性发送多个数据包,也可以接受多个数据包。它只负责发送,不负责是否接收到,因此效率高的同时也不安全!
如何实现通信
DatagramSocket和DatagramPacket两个类去实现通信,会用到DatagramSocket中的send()和receive()方法及DatagramPacket中的getData()和getLength()方法。
二者区别
TCP :面向连接,适用于传输大量数据,效率较低,传输安全。
UDP:面向无连接,适用于传输少量数据,效率高,传输不安全。
二者都可以用来实现通信!!!
窗体通信
结构
上中下三块区域(panel),四个按钮,一个地址区域!
创建结构相关代码
public void centerPanel() {
Panel center=new Panel();//创建中间的panel
viewText = new TextArea();
sendText = new TextArea(5,1);
center.setLayout(new BorderLayout());//设置为边界布局管理器
center.add(sendText,BorderLayout.SOUTH);//发送的文本区域放在下边
center.add(viewText,BorderLayout.CENTER);//显示文本区域放在中间
viewText.setEditable(false);//设置上panel不能编辑
viewText.setBackground(Color.WHITE);//设置显示区域背景颜色
sendText.setFont(new Font("xxx", Font.PLAIN, 15));//设置发送区域的文字类型,样式,大小
viewText.setFont(new Font("xxx", Font.PLAIN, 15));//设置显示区域的文字类型,样式,大小
this.add(center,BorderLayout.CENTER);
}
public void xiaPanel() {
Panel xia=new Panel();//创建下面的panel
tf = new TextField(15);
tf.setText("127.0.0.1");
send = new Button("发送");
log = new Button("记录");
clear = new Button("清屏");
shake = new Button("震动");
xia.add(tf);
xia.add(send);
xia.add(log);
xia.add(clear);
xia.add(shake);
this.add(xia,BorderLayout.SOUTH);
}
按钮功能代码(GUI监听)
private void event() {
this.addWindowListener(new WindowAdapter() {