📄 client.java
字号:
package client;import java.awt.*;import java.io.*;import java.net.*;import java.applet.*;/** * Title: 数据库客户端Applet小程序 * Description: Java语言演示程序:数据库客户端Applet小程序,用于北京师范大学计算机系Java课程教学示范。 * Copyright: Copyright (c) 2002 * Company: 北京师范大学计算机系 * @author 孙一林 * @version 1.0 */public class Client extends Applet { // 定义客户端Applet小程序类 public TextArea chat_txt; // 声明界面等变量 private TextField sql_txt; private Button connect,execute; private Socket soc = null; // 定义Socket类 private PrintStream ps = null; // 定义输出流类 Listen listen; // 声明监听类 public void init(){ // Applet初始化 chat_txt = new TextArea(); sql_txt = new TextField(20); connect = new Button("连接数据库"); execute = new Button("命令执行"); execute.disable(); Panel pp = new Panel(); pp.setLayout(new FlowLayout()); pp.add(sql_txt); pp.add(connect); pp.add(execute); add("North",pp); add("Center",chat_txt); } public boolean action(Event evt,Object obj){ if(evt.target instanceof Button){ String label = (String)obj; if(label.equals("连接数据库")) { try{ soc = new Socket(InetAddress.getLocalHost(),8080/*端口号*/); // 创建Socket对象 ps = new PrintStream(soc.getOutputStream()); // 创建socket输出对象 ps.println("HELLO"); // 发送‘HELLO’ ps.flush(); listen = new Listen(this,soc); // 创建监听线程 listen.start(); // 启动监听线程 } catch(Exception e) { chat_txt.setText(e.toString()); disconnect(); } connect.setLabel("断开数据库"); execute.enable(); }else if(label.equals("断开数据库")) disconnect(); else if(label.equals("命令执行")) { if(sql_txt.getText()!= null) { ps.println("FIND"); // 发送‘FIND’ ps.flush(); ps.println(sql_txt.getText()); ps.flush(); } } } return false; } public void disconnect() { // 定义断开数据库 if(soc!= null) { try{ listen.stop(); ps.println("QUIT"); // 发送‘QUIT’ ps.flush(); soc.close(); // 关闭通讯 } catch(Exception e){} finally{ listen.stop(); listen = null; soc = null; } execute.disable(); connect.setLabel("断开数据库"); } }}class Listen extends Thread { // 定义通讯监听线程 Socket socket = null; DataInputStream dis = null;// 创建输入流
Client parent = null; public Listen(Client p,Socket s) { parent = p; socket = s; try{ dis = new DataInputStream(socket.getInputStream()); // 创建socket输入对象,获取显示数据 }catch(Exception e){} } public void run() { // 定义线程功能 String line = null; while(true) { try{ line = dis.readLine(); // 从输入流中读数据 } catch(Exception e){} if(line!= null) parent.chat_txt.appendText(line); // 显示数据(结果集) } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -