Я пишу свою первую клиентскую/серверную программу java, которая только устанавливает соединение с сервером, и когда я запускаю IP-адрес программы, и номер порта должен быть напечатан. но когда я запускаю серверную программу, я получаю сообщение об ошибке.Когда я запускаю клиент-серверную программу, я получаю ArrayIndexOutofBoundException
Server.java
package serverpro;
import java.io.*;
import java.net.*;
public class Server{
static InetAddress ip;
public static final String HOST="localhost";
public static final int PORT= 4444;
public static void main(String a[]) throws Exception {
System.out.println("starting server..");
System.out.println("Initializing Connection..");
try (
ServerSocket serverSocket = new ServerSocket(PORT);
Socket clientSocket = serverSocket.accept();
//BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
//PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
) {
ip = InetAddress.getLocalHost();
System.out.println("InetAdress " + ip.getHostAddress() + " : " + clientSocket.getPort());
} catch (Exception e) {
System.err.println("Exception in starting server: " + e.getMessage());
}
}
}
Client.java
package serverpro;
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
try (
Socket client = new Socket(Server.HOST, Server.PORT);
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
) {
String inputLine;
while ((inputLine = stdIn.readLine()) != null) {
if ("exit".equals(inputLine)) {
out.println("exit");
break;
}
out.println(inputLine);
out.flush();
final String response = in.readLine();
System.out.println(response);
}
} catch (UnknownHostException e) {
System.err.println("Don't know about host: localhost.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to: localhost.");
System.exit(1);
}
}}
Теперь Когда я бегу ServerProgram первым я получаю ниже выхода
пробег:
Entered server console..
Initializing Connection..
, но когда я запускаю клиента выхода, то он показывает нулевую
пробег:
Вероятно, вы не прошли порт (аргумент командной строки) для GreetingServer во время работы. –
Можете ли вы написать целую строчку, чтобы я мог понять. Как написать номер порта? –
как вы его используете? через командную строку или некоторую среду IDE? –