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

📄 tcptest.java

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

     class EchoClient extends AbstractConnection implements Runnable
     {
          // 客户端执行线程
          private Thread exec;

          // 用指定的Socket创建一个新的EchoClient
          public EchoClient(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;
               }

               // 输入终止标记
               final String sentinel = "ZZZ";

               // 创建一个BufferedReader来接收用户输入
               BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

               // 从用户那里读入输入的字符串
               String input = "";

               while(true)
               {    
                    System.out.print("Enter a string, or '" + sentinel + "' to quit: ");      

                    try
                    {
                         input = reader.readLine();
                    }
                    catch(IOException e)
                    {
                         System.err.println("General I/O error; client terminating.");
                         close(true);
                         return;
                    }

                    // 如果用户输入标记值的话则发送一个EOT信号
                    if(sentinel.equals(input))
                    {      
                         send(END_OF_TRANSMISSION, "");
                         close(false);
                         return;
                    }           
        
                    // 否则,请求反转字符串服务  
                    send("Reverse", input);
                    recv();

                    // 打印服务的响应
                    System.out.println(parseMessage());
               }
          }
     }    // EchoClient

     // TCP连接测试程序
     public class TCPTest
     {
          // 在没有指定端口时使用的默认端口
          public final static int DEFAULT_PORT = 1234;

          public static void main(String[] args) 
          {
               // 在指定别的端口之前采用默认的端口号
               int port = DEFAULT_PORT;

               // 确保用户至少指定了连接服务器
               if(args.length > 1) 
               {
                    // 如果指定了的话,得到端口号
                    if(args.length >= 2)
                    {
                         try 
                         {
                              port = Integer.parseInt(args[1]); 
                         }

                         catch(NumberFormatException e) 
                         {
                              System.err.println("Invalid port specification; using default port of " + DEFAULT_PORT);
                              port = DEFAULT_PORT;
                         }
                    }

                    // 创建客户端
                    try
                    { 
                         new EchoClient(new Socket(args[0], port)).start();
                    }
                    
                    catch(Exception e)
                    {
                         System.err.println("Could not create client socket!");
                    }
               }

               // 如果没有指定主机名则打印一条错误消息
               else
               {
                    System.out.println("Usage: java TCPTest <hostname> [<port>]");
                    System.exit(0);
               }
          }    // main

     }    // TCPTest

⌨️ 快捷键说明

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