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

📄 guiserver.java

📁 java learn PPT java learn PPT java learn PPT java learn PPT
💻 JAVA
字号:
package magic.net;

import java.io.*;
import java.awt.*;
import java.applet.*;
import java.net.*;

// 一个简单的启动TCP连接的图形化服务器
public abstract class GUIServer
    extends Applet
    implements Runnable
{
  // 服务器连接的默认端口
  public static final int DEFAULT_PORT = 1234;

  // 服务端口
  protected int port;

  // 监听服务请求的ServerSocket
  protected ServerSocket listener;

  // 服务器的执行线程
  protected Thread exec;

  // 用来打印服务器消息的 TextArea
  protected TextArea textArea;

  public void log(String msg)
  {
    if (textArea != null) {
      textArea.append("Server: " + msg + "\n");
    }
  }

  // 创建监听连接的ServerSocket
  public void init()
  {
    textArea = new TextArea();
    textArea.setEditable(false);
    add(textArea);

    port = Integer.parseInt(getParameter("Port"));

    if (port == 0) {
      port = DEFAULT_PORT;
    }

    try {
      listener = new ServerSocket(port);
    }
    catch (IOException e) {
      log("I/O exception creating server socket : " + e);
    }

    log("listening on port " + port);
  }

  public void start()
  {
    exec = new Thread(this);
    exec.start();
  }

  public void stop()
  {
    exec = null;
  }

  protected abstract void createService(Socket s);

  public void run()
  {
    try {
      Thread thread = Thread.currentThread();
      while (exec == thread) {
        Socket clientSocket = listener.accept();

        log("connected to " + clientSocket.getInetAddress() +
            " : " + clientSocket.getPort());

        createService(clientSocket);

        try {
          Thread.sleep(25);
        }
        catch (InterruptedException e) {}
      }
    }
    catch (IOException e) {
      log("I/O exception raised while listening for connections : " + e);
    }
  }

} // GUIServer

⌨️ 快捷键说明

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