2013-03-20 5 views
0

Что мне нужно сделать в основном - это программа клиента/сервера Java, в которой клиент просит сервер выполнить добавление или умножение. Клиент отправляет на сервер объект , который содержит запрошенную операцию (добавление или умножение) и последовательность номеров, на которых должен работать сервер (добавление или умножение). Номера отправляются с консоли, написанные пользователем.Служба поддержки клиентов Java

Сервер получает объект, выполняет расчет и возвращает ответ. Это код, который у меня есть. Я не знаю, как добавить функцию добавления и объект, отправить ее на сервер, отправить те номера, чтобы сервер мог действовать на них.

  package esercizio3; 
     import java.io.*; 
     import java.net.*; 

     public class Client{ 

    public static void main(String[] args) throws Exception { 
    Socket communication = new Socket("localhost",8888); 
    BufferedReader response = new BufferedReader(
        new InputStreamReader(communication.getInputStream())); 
    PrintWriter request = new PrintWriter(communication.getOutputStream()); 
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); 

    request.println(stdIn.readLine()); 
    String line = response.readLine(); 
    System.out.println(line); 

    response.close(); 
    request.close(); 
    stdIn.close(); 
    communication.close(); 


} 
    } 


package esercizio3; 
import java.io.*; 
import java.net.*; 

public class Server { 

public static void main(String[] args) throws Exception { 
    ServerSocket listener = new ServerSocket(8888); 
    Socket communication = listener.accept(); 
    BufferedReader request = new BufferedReader(
         new InputStreamReader(communication.getInputStream())); 
    PrintWriter response = new PrintWriter(communication.getOutputStream()); 
    String line; 
    while((line = request.readLine()) != "FINE"){ 
      a = request. 
      response.println("Hai detto: " +line); 
    } 

    request.close(); 
    response.close(); 
    communication.close(); 
    listener.close(); 

} 

    } 
+1

Ваш код содержит ошибки, и не отформатирован. Будет легче помочь, если вы немного почистите его. – NilsH

ответ

0

Client

package esercizio3; 
import java.io.*; 
import java.net.*; 

public class Client{ 
    public static void main(String[] args) throws Exception { 
     Socket communication = new Socket("localhost",8888); 
     BufferedReader response = new BufferedReader(
            new InputStreamReader(communication.getInputStream())); 
     PrintWriter request = new PrintWriter(communication.getOutputStream()); 
     BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); 
     String userInput = stdIn.readLine(); 
     if (userInput.equals("FINE")){// All calculations are finished 
      request.println("FINE"); 
     }else{ 
      StringBuffer sbUserInput = new StringBuffer(); 
      while(!userInput.equals("SEND")){ // Get input from user until SEND command received and prepare a string which you have to process in server 
       sbUserInput.append(userInput).append(" ");//Add the user input along with a space which eases our server task. 
       userInput = stdIn.readLine(); 
      } 
      request.println(sbUserInput.toString()); // Send it to server 
     } 
     String line = response.readLine(); 
     System.out.println(line); 
     response.close(); 
     request.close(); 
     stdIn.close(); 
     communication.close(); 
    } 
} 

Сервер

package esercizio3; 
import java.io.*; 
import java.net.*; 

public class Server { 
    public static void main(String[] args) throws Exception { 
     ServerSocket listener = new ServerSocket(8888); 
     Socket communication = listener.accept(); 
     BufferedReader request = new BufferedReader(
           new InputStreamReader(communication.getInputStream())); 
     PrintWriter response = new PrintWriter(communication.getOutputStream()); 
     String line; 
     while((line = request.readLine()) != "FINE"){ 
      // Read each string separated by space in the line and check if it is a number or + Or * 
      String[] lineContents = line.split(" "); 
      int result = 0; 
      for(String lineContent : lineContents){ 
       // Check if it is + OR * 
       // Take proper action and update "result" 
      } 
      // Send the response back to the client 
      response.println("Hai detto: " +line); 
     } 
     request.close(); 
     response.close(); 
     communication.close(); 
     listener.close(); 
    } 
} 
Смежные вопросы