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

📄 echoserver.java

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

     // 服务器所提供的显示接收到的文本的服务程序
     class EchoService extends AbstractConnection implements Runnable
     {
          // 服务执行线程
          private Thread exec;

          // 用指定的Socket创建一个新的EchoService对象
          public EchoService(Socket s)
          {
               super(s);

               exec = new Thread(this);
          }

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

          // 运行执行线程
          public void run()
          {
               // 打开连接
               if(! open())
               {
                    System.out.println("Could not open connection.");
                    return;
               }

               Thread t = Thread.currentThread();
               while(exec == t)
               {
                    // 等待下一个消息
                    recv();

                    // 或缺消息头
                    String header = parseHeader();

                    // 如果客户端终止传送则退出
                    if(header.equals(END_OF_TRANSMISSION))
                    {
                         close(false);
                         return;
                    }

                    // 如果消息头是"Reverse",则反转字符串的消息部分 
                    // 并将它发回给客户端
                    else if(header.equals("Reverse"))
                    {
                         send("Echo", new StringBuffer(parseMessage()).reverse().toString());
                    }

                    // 否则,响应不可识别
                    else
                    {
                         System.err.println("Unrecognized header: " + parseHeader());
                    }
 
                    try 
                    {
                         Thread.sleep(25);
                    } 
                    catch(InterruptedException e)
                    { }
               }
          }

     }    // EchoService

     // TCP连接的一个简单的回显服务器
     public class EchoServer extends Server
     {
          // 用给定的端口号创建一个新的EchoServer
          public EchoServer(int portNo) 
          {
               super(portNo);
          }

          // 通过创建一个新的EchoServer对象
          //实现Server的 createService 方法来和客户端通信
          protected void createService(Socket socket)
          {
               new EchoService(socket).start();
          }

          // 启动服务器,监听一个可选的指定端口
          public static void main(String[] args) 
          {
               int port = 0;
               if(args.length == 1) 
               {
                    try 
                    {
                         port = Integer.parseInt(args[0]); 
                    }
                    catch(NumberFormatException e) 
                    {
                         System.err.println("Invalid port specification; using default port of " + DEFAULT_PORT);
                         port = DEFAULT_PORT;
                    }
               }
           
               // 启动服务器
               Server s = new EchoServer(port);
               s.start();
          }

     }     // EchoServer

⌨️ 快捷键说明

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