“字符串”;对于输入字符串:"-l";即使它不';不存在于代码中(java线程)

“字符串”;对于输入字符串:"-l";即使它不';不存在于代码中(java线程),java,eclipse,multithreading,Java,Eclipse,Multithreading,该程序的目的是将文本消息(UTF-8字符串)从服务器发送到客户端,反之亦然,就像两个人在电话上互相发送文本一样(一部电话是客户端,一部电话是服务器) 在下面的屏幕截图中,有一个输出显示“For input string:”-l“,但代码中实际上不存在该输出 有三个文件,一个是主要功能,一个是服务器,一个是客户端 命令行参数“-l”(如果存在)将运行服务器线程/服务器文件 如果“-l”不存在,它将运行客户端线程/客户端文件 DirectMessenger.java代码(主功能文件): Direc

该程序的目的是将文本消息(UTF-8字符串)从服务器发送到客户端,反之亦然,就像两个人在电话上互相发送文本一样(一部电话是客户端,一部电话是服务器)

在下面的屏幕截图中,有一个输出显示“For input string:”-l“,但代码中实际上不存在该输出

有三个文件,一个是主要功能,一个是服务器,一个是客户端

命令行参数“-l”(如果存在)将运行服务器线程/服务器文件

如果“-l”不存在,它将运行客户端线程/客户端文件

DirectMessenger.java代码(主功能文件):

DirectMessenger客户端.java代码:

import java.io.*;
import java.net.*;
import java.util.*;
import static java.nio.charset.StandardCharsets.*;
public class DirectMessengerClient
{
    //static String[] arguments;
    //public static void main(String[] args)
    //{
    //  arguments = args;
    //}
    public DirectMessengerClient()
    {

        //System.out.println("test.");

    }
    public void ClientRun(String[] args)
    {
        Thread Client = new Thread ()
        {
          public void run()
          {   
                System.out.println("Client thread is now running");
              //  String address="127.0.0.1";
              //  ServerSocket server_socket = null;
              //  Socket client_socket = null;
                //Socket smtpSocket = null;  
                DataOutputStream outputstream;
                DataInputStream inputstream;
                try
                {
                            System.out.println("Try block begins..");
                            int port_number1= Integer.valueOf(args[0]);
                            System.out.println("Port number is: " + port_number1);
                           // listener = new ServerSocket(port_number1);
                         //   SocketAddress addr = new InetSocketAddress(address, port_number1);
                            System.out.println("Listening for connections..");
                            System.out.println( "Listening on port: " + Integer.toString( port_number1 ) );
                         //   client_socket= server_socket.accept();
                        //    BufferedReader reader= new BufferedReader(new InputStreamReader(client_socket.getInputStream(), "UTF8"));
                         //   PrintWriter output= new PrintWriter( client_socket.getOutputStream(), true );
                         //   outputstream = new DataOutputStream(smtpSocket.getOutputStream());
                         //   inputstream = new DataInputStream(smtpSocket.getInputStream());
                         //   String input_line= reader.readLine();
                            System.out.println( "Received from client: " );
                          //  System.out.println( input_line );
                         //   output.println( input_line );
                }
                catch ( Exception e )
                {
                            System.out.println( e.getMessage() );
                }

          }
        };

    Client.start(); 
    }
}

我的问题是:当输出“for input string”-l”实际上不存在于代码中时,它是如何输出的?

它是由
系统.out.println(e.getMessage())打印的

你不应该这样做,因为你看到它很混乱,而且它没有描述整个异常。使用
e.printStackTrace()取而代之

在您设法看到完整的异常之后,通过更改

int port_number1= Integer.valueOf(args[0]);


它正在由您的
System.out.println(e.getMessage())打印

你不应该这样做,因为你看到它很混乱,而且它没有描述整个异常。使用
e.printStackTrace()取而代之

在您设法看到完整的异常之后,通过更改

int port_number1= Integer.valueOf(args[0]);


非常感谢。我很感激,没问题,这就是我来这里的原因(大部分时间)。谢谢。我很感激,没问题,这就是我来这里的原因。
int port_number1= Integer.valueOf(args[0]);
int port_number1= Integer.valueOf(args[1]);