И все, я уже создал несколько программ, связанных с клиентом и сервером.Сегодня это был мой сессионный [практический экзамен] технологии Клиент-сервер.
Проблема заключалась в следующем: я должен был добавить две ошибки на сервер, отправленный клиентом, и получить результат обратно клиенту.
Я пробовал это решение, но было какое-то странное решение: Server.java
import java.net.*;
import java.io.*;
public class Server{
public static void main(String args[]) throws Exception{
ServerSocket s = new ServerSocket(7896);
Socket cs = s.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(cs.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(cs.getOutputStream()));
bw.write(br.read() + br.read());
}
}
Client.java
import java.io.*;
import java.net.*;
public class Client{
public static void main(String args[]) throws Exception{
Socket s = new Socket("localhost", 7896);
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write(3);
bw.write(4);
System.out.println("Output is: " + br.read());
}
}
когда я запустил его по запросу DOS, у меня появилось два пустых экрана;один на сайте клиента и один на сайте сервера (что было немного удивительно).затем я закрыл сервер, затем внезапно я получил сообщение об ошибке на клиенте, что-то вроде соединения закрыто.
Затем я запустил ту же программу на моем Linux Ubuntu с тем же JDK 1.6, как это было в Windows, и здесь также пустые экраны, но когда язакрытый сервер я получил:
Output is: -1
Хотя на экзамене я сделал это, используя DataOutputStream и DataInputStream.
Но почему вышеприведенный код не работает.
Может ли кто-нибудь объяснить, что там происходит в коде.
Спасибо