このプログラムの目的は、サーバーからのテキストメッセージ(UTF-8文字列)をクライアントとその逆の場合は、2人が電話でお互いにテキストを入力するようになります(1台の電話機はクライアント、1台の電話機はサーバー)文字列 "For input string:" -l "がコードに存在しないにもかかわらず実行され、出力される(Javaスレッド)
次のスクリーンショットでは、 "For input string:コードに実際には存在しない "-l"
は、1つのクライアントである、1はサーバであり、1は主な機能を持って、三つのファイルがあります。
コマンドライン引数 "-l"(存在する場合)は、サーバスレッド/サーバファイルを実行します。
"-l"が存在しない場合、クライアントスレッド/クライアントファイルが実行されます。
DirectMessengerCombined.javaコード(メイン関数ファイル):
public class DirectMessengerCombined
{
public static void main(String[] args)
{
DirectMessengerClient Client1 = new DirectMessengerClient();
DirectMessengerServer Server1 = new DirectMessengerServer();
for (int i = 0; i < args.length; i++)
{
boolean Client = false;
boolean Server = false;
if(args[0].equals("3000"))
{
Client1.ClientRun(args);
}
switch (args[0].charAt(0))
{
case '-':
if(args[0].equals("-l"))
{
Server = true;
if(Server==true)
{
Server1.ServerRun(args);
}
}
}
i=args.length + 20;
}
}
}
DirectMessengerServer.javaコード:
import java.io.*;
import java.net.*;
import java.util.*;
//import static java.nio.charset.StandardCharsets.*;
public class DirectMessengerServer
{
void ServerRun(String[] args)
{
Thread Server = new Thread()
{
public void run()
{
//String address="127.0.0.1";
System.out.println("Server thread is now running");
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: " + (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());
}
}
};
Server.start();
}
}
DirectMessengerClient.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();
}
}
私の質問は:どのように入力文字列 "-l"が実際にコードに存在しないときに出力される出力 "ですか?
ありがとうございました。私はそれを感謝する –
問題はない、だから私は(主に)ここにいる。 – Kayaman