UDP-Java 套接字如何超过 args.length > 2 来测试客户端服务器连接的稳健程度?
UDP-Java Socket how can I exceed args.length > 2 to test how robust the client server connection is?
我试图在 google.de 初始化为 null 之前输入一个不同的 IntetAdress 对象,这对输出没有影响。
如何使用 args.length > 2 提示 if-else 语句来测试使用方法是否有效?
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Client {
public static void usage() { /// Methode Usage definiert
System.out.print("usage:");
System.out.println("\t Client [< connect IP >] [< connect port >]"); /// Druck die Nutzung Ip und Port
} // usage
public static void main(String[] args) throws Exception {
int port = 1234;
InetAddress address = InetAddress.getByName("127.0.0.1");
DatagramSocket sock = new DatagramSocket(); /// Parameterloser Konstruktor wird verwendet, zur generierung des
/// DatagramSockets.
byte[] buffer = new byte[1];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
sock.send(packet);
System.out.println("Client hat Request versendet! ");
sock.receive(packet);
System.out.print("Server-Antwort von ");
System.out.print(packet.getAddress().toString() + ": ");
System.out.println(packet.getPort());
sock.close();
} // main
} // Client
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class RobusterClient {
public static void usage() { /// Methode Usage definiert
System.out.print("usage:");
System.out.println("\t Client [< connect IP >] [< connect port >]"); /// Druck die Nutzung Ip und Port
} // usage
public static void main(String[] args) throws Exception {
int port = 1234; /// Port 1234 festgelegt
InetAddress address = InetAddress.getByName("www.google.de"); /// InetAddress adress als Name
if (args.length > 2) { /// Wenn args.length größer 2 dann usage aufrufen
usage(); // Druckt aktuelle IP und Port
System.exit(1);
} // if
if (args.length > 0) // größer 0 dann args.length aufrufen
address = InetAddress.getByName(args[0]);
else
address = InetAddress.getByName("127.0.0.1"); /// Holle Die Ip Adresse mit diesem Namen 127.....
if (args.length > 1)
port = Integer.parseInt(args[1]); /// was macht parseInt ? Wandle in int um
if (port <= 0 || port > 65535) { ///
System.err.println(" Port liegt nicht im gültigen Bereich!");
System.exit(1);
} // if
DatagramSocket sock = new DatagramSocket();
byte [] buffer = new byte[1];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
sock.send(packet);
System.out.println("Client hat Request versendet! ");
sock.receive(packet);
System.out.print("Server-Antwort von ");
System.out.print(packet.getAddress().toString() + ": ");
System.out.println(packet.getPort());
sock.close();
}
}
例如我该如何提示?
if (args.length > 0)
InetAddress.getByName(args[0]);
您的 RobustClient
已经按照您要求的方式使用 args
。你只需要去掉程序开头对InetAddress.getByName("www.google.de")
的调用即可。
试试这个:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class RobusterClient {
public static void usage() { /// Methode Usage definiert
System.out.print("usage:");
System.out.println("\t Client [< connect IP >] [< connect port >]"); /// Druck die Nutzung Ip und Port
} // usage
public static void main(String[] args) throws Exception {
if (args.length > 2) { /// Wenn args.length größer 2 dann usage aufrufen
usage(); // Druckt aktuelle IP und Port
System.exit(1);
} // if
InetAddress address; /// InetAddress adress als Name
if (args.length > 0) // größer 0 dann args.length aufrufen
address = InetAddress.getByName(args[0]);
else
address = InetAddress.getByName("127.0.0.1"); /// Holle Die Ip Adresse mit diesem Namen 127.....
int port;
if (args.length > 1) {
port = Integer.parseInt(args[1]); /// was macht parseInt ? Wandle in int um
if (port <= 0 || port > 65535) { ///
System.err.println(" Port liegt nicht im gültigen Bereich!");
System.exit(1);
} // if
}
else
port = 1234; /// Port 1234 festgelegt
DatagramSocket sock = new DatagramSocket();
byte [] buffer = new byte[1];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
sock.send(packet);
System.out.println("Client hat Request versendet! ");
sock.receive(packet);
System.out.print("Server-Antwort von ");
System.out.print(packet.getAddress().toString() + ": ");
System.out.println(packet.getPort());
sock.close();
}
}
我试图在 google.de 初始化为 null 之前输入一个不同的 IntetAdress 对象,这对输出没有影响。
如何使用 args.length > 2 提示 if-else 语句来测试使用方法是否有效?
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Client {
public static void usage() { /// Methode Usage definiert
System.out.print("usage:");
System.out.println("\t Client [< connect IP >] [< connect port >]"); /// Druck die Nutzung Ip und Port
} // usage
public static void main(String[] args) throws Exception {
int port = 1234;
InetAddress address = InetAddress.getByName("127.0.0.1");
DatagramSocket sock = new DatagramSocket(); /// Parameterloser Konstruktor wird verwendet, zur generierung des
/// DatagramSockets.
byte[] buffer = new byte[1];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
sock.send(packet);
System.out.println("Client hat Request versendet! ");
sock.receive(packet);
System.out.print("Server-Antwort von ");
System.out.print(packet.getAddress().toString() + ": ");
System.out.println(packet.getPort());
sock.close();
} // main
} // Client
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class RobusterClient {
public static void usage() { /// Methode Usage definiert
System.out.print("usage:");
System.out.println("\t Client [< connect IP >] [< connect port >]"); /// Druck die Nutzung Ip und Port
} // usage
public static void main(String[] args) throws Exception {
int port = 1234; /// Port 1234 festgelegt
InetAddress address = InetAddress.getByName("www.google.de"); /// InetAddress adress als Name
if (args.length > 2) { /// Wenn args.length größer 2 dann usage aufrufen
usage(); // Druckt aktuelle IP und Port
System.exit(1);
} // if
if (args.length > 0) // größer 0 dann args.length aufrufen
address = InetAddress.getByName(args[0]);
else
address = InetAddress.getByName("127.0.0.1"); /// Holle Die Ip Adresse mit diesem Namen 127.....
if (args.length > 1)
port = Integer.parseInt(args[1]); /// was macht parseInt ? Wandle in int um
if (port <= 0 || port > 65535) { ///
System.err.println(" Port liegt nicht im gültigen Bereich!");
System.exit(1);
} // if
DatagramSocket sock = new DatagramSocket();
byte [] buffer = new byte[1];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
sock.send(packet);
System.out.println("Client hat Request versendet! ");
sock.receive(packet);
System.out.print("Server-Antwort von ");
System.out.print(packet.getAddress().toString() + ": ");
System.out.println(packet.getPort());
sock.close();
}
}
例如我该如何提示?
if (args.length > 0)
InetAddress.getByName(args[0]);
您的 RobustClient
已经按照您要求的方式使用 args
。你只需要去掉程序开头对InetAddress.getByName("www.google.de")
的调用即可。
试试这个:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class RobusterClient {
public static void usage() { /// Methode Usage definiert
System.out.print("usage:");
System.out.println("\t Client [< connect IP >] [< connect port >]"); /// Druck die Nutzung Ip und Port
} // usage
public static void main(String[] args) throws Exception {
if (args.length > 2) { /// Wenn args.length größer 2 dann usage aufrufen
usage(); // Druckt aktuelle IP und Port
System.exit(1);
} // if
InetAddress address; /// InetAddress adress als Name
if (args.length > 0) // größer 0 dann args.length aufrufen
address = InetAddress.getByName(args[0]);
else
address = InetAddress.getByName("127.0.0.1"); /// Holle Die Ip Adresse mit diesem Namen 127.....
int port;
if (args.length > 1) {
port = Integer.parseInt(args[1]); /// was macht parseInt ? Wandle in int um
if (port <= 0 || port > 65535) { ///
System.err.println(" Port liegt nicht im gültigen Bereich!");
System.exit(1);
} // if
}
else
port = 1234; /// Port 1234 festgelegt
DatagramSocket sock = new DatagramSocket();
byte [] buffer = new byte[1];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
sock.send(packet);
System.out.println("Client hat Request versendet! ");
sock.receive(packet);
System.out.print("Server-Antwort von ");
System.out.print(packet.getAddress().toString() + ": ");
System.out.println(packet.getPort());
sock.close();
}
}