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

📄 server.java

📁 java learn PPT java learn PPT java learn PPT java learn PPT
💻 JAVA
字号:
     import java.io.*;
     import java.net.*;

     // 一个简单的服务器,它等待并监听远程连接服务请求
     // 然后将服务请求委派给createService方法
     public abstract class Server implements Runnable
     {
          // 服务器连接的默认端口
          public static final int DEFAULT_PORT = 1234;

          // 服务所分配的端口   
          protected int port;

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

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

          // 当异常发生时,返回一个错误消息并退出
          public static void fail(Exception e, String msg) 
          {
               System.err.println(msg + ": " +  e);
               System.exit(1);
          }
    
          // 用给定的端口号创建一个新的Server对象 
          public Server(int portNo) 
          {
               // 设置端口,确保它非负非零
               port = (portNo <= 0) ? DEFAULT_PORT : portNo;

               // 
               try
               {
                    listener = new ServerSocket(port); 
               }
               catch (Exception e)   
	       {
                    fail(e, "Exception occured while creating server socket");
               }
 
               exec = new Thread(this);        
          }

          // 启动执行线程
          public final void start()
          {
                exec.start();
          }

          // 用指定的Socket创建一个服务
          protected abstract void createService(Socket socket);
    
          // 服务器线程的主要工作部分. 监听并接受客户端连接
          public void run() 
          {
               System.out.println("Server: listening on port " + port);
               System.out.println("Server: use Ctrl-C to terminate service.");

               try
               {
                    Thread thread = Thread.currentThread();
                    while(exec == thread)
                    {
                         // 监听并接受连接 
                         Socket clientSocket = listener.accept();

                         // 使用所接受的Socket创建服务
                         createService(clientSocket);

                         // 打印一个已连接消息到控制台
                         System.out.println("\nConnected to " + clientSocket.getInetAddress() + 
                                            " : " + clientSocket.getPort());
                                             
                         try 
                         {
                              Thread.sleep(25);
                         }
                         catch(InterruptedException e)
                         { }
                    }
               }
               catch (IOException e)
               {
                    fail(e, "Exception while listening for connections");
               }
          }

     }    // Server

⌨️ 快捷键说明

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