⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skillsserver.java

📁 一个JAVA小程序!功能不小!
💻 JAVA
字号:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.ServerSocket;

import java.sql.*;

public class SkillsServer {

  private int port = 1927;

  private ServerSocket serverSocket;

  static final String dbURL =
    "jdbc:mysql://localhost/j2mebook?" + 
    "user=j2meapps&password=bigsecret";

  public SkillsServer() throws ClassNotFoundException {
    Class.forName("org.gjt.mm.mysql.Driver");
  }

  public void acceptConnections() {

    try {
      serverSocket = new ServerSocket(port);
    }
    catch (IOException e) {
      System.err.println("ServerSocket instantiation failure");
      e.printStackTrace();
      System.exit(0);
    }

    while (true) {
      try {
        Socket newConnection = serverSocket.accept();
        System.out.println("accepted connection");
        ServerThread st = new ServerThread(newConnection);
        new Thread(st).start();
      }
      catch (IOException ioe) {
        System.err.println("server accept failed");
      }
    }
  }
    
  public static void main(String args[]) {

    SkillsServer server = null;
    try {
      server = new SkillsServer();
    }
    catch (ClassNotFoundException e) {
      System.out.println("unable to load JDBC driver");
      e.printStackTrace();
      System.exit(1);
    }

    server.acceptConnections();
  }

  class ServerThread implements Runnable {

    private Socket socket;
    private DataInputStream datain;
    private DataOutputStream dataout;

    public ServerThread(Socket socket) {
      this.socket = socket;
    }

    public void run() {
      try {
        datain = new DataInputStream(new BufferedInputStream
          (socket.getInputStream()));
        dataout = new DataOutputStream(new BufferedOutputStream
          (socket.getOutputStream()));
      }
      catch (IOException e) {
        return;
      }
      byte[] ba = new byte[6];
      boolean conversationActive = true;
      while(conversationActive) {
        String skill = null;
        try {
          datain.read(ba,0,6);
          skill = new String(ba);
          if ((skill.length() == 1) && 
              (skill.toUpperCase().charAt(0) == 'Q')) {
            conversationActive = false;
          }
          else {
            System.out.println("requested skill = " + skill);
            String names = getNames(skill);
            System.out.println("names: " + names);
            System.out.println("writing " + names.length() + " bytes");
            dataout.write(names.getBytes(),0,names.length());
            dataout.write("\n".getBytes(),0,1);
            dataout.flush();
          }
        }
        catch (IOException ioe) {
          conversationActive = false;
        }
      }
      try {
        System.out.println("closing socket");
        datain.close();
        dataout.close();
        socket.close();
      }
      catch (IOException e) {
      }
    }

    private String getNames(String skill) {
      String result = "None available";
      Connection conn = null;
      try {
        conn = DriverManager.getConnection(dbURL);

        Statement stmt = conn.createStatement();
        String query = "SELECT lastname, firstname " +
                       "FROM skills " + "WHERE skill = " + 
                       "'" + skill.trim() + "'" +
                       " ORDER BY lastname";
        System.out.println("query = " + query);
        ResultSet rs = stmt.executeQuery(query);
        StringBuffer sb = new StringBuffer();
        while (rs.next()) {
          sb.append(rs.getString(1));
          sb.append(", ");
          sb.append(rs.getString(2));
          sb.append('$');
        }
        result = sb.toString();
      }
      catch (SQLException e) {
        System.out.println(e.getMessage());
        result = "server error";
      }
      finally {
        if (conn != null) {
          try {
            conn.close();
          }
          catch (SQLException e) {
          }
        }
      }
      return result;
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -