Új hozzászólás Aktív témák

  • Votyesz13

    tag

    Sziasztok

    Valaki tudna nekem ebben segíteni?
    A szervernek el kell végeznie a kliens által küldött float típusú számokon a kért számításokat. (összeadás,kivonás,osztás,szorzás,gyökvonás,pozitív egész kitevőjű hatványozás) Tetszőleges számra is működnie kell. (példa input: 5.1 + 2.9 * 3.4 gyök hatv 3 = ) Ekkor a szervernek a következő számítást kell elvégeznie: ( gyök((5.1 + 2.9) * 3.4) )^3 . Tehát nem kell a műveletek precedenciájával foglalkozni, mindig az utolsó részéredmény és az új szám lesz a művelet két operandusa. Az = műveletre küldjük vissza a kliensnek a végeredményt, ő pedig írja ki a képernyőre. A szerver párhuzamosan több klienst is tudjon kiszolgálni. Tegyük fel, hogy a felhasználó helyes inputot küld. Ellenőrizzük az input helyességét, és írjuk ki, hogy mi a hiba.(+) Az inputban az operandusok és a műveleti jelek között tetszőleges számú és mennyiségű whitespace (space,TAB,újsor) szerepelhet.(+)

    Multiecho szerverből akarok kiindulni.Az így nézne ki:

    import java.io.*;
    import java.net.*;

    public class MultiEchoServer {

    public static int MYECHOPORT = 8189;

    public static void main(String argv[]) {
    ServerSocket s = null;
    try {
    s = new ServerSocket(MYECHOPORT);
    } catch(IOException e) {
    System.out.println(e);
    System.exit(1);
    }

    while (true) {
    Socket incoming = null;
    try {
    incoming = s.accept();
    } catch(IOException e) {
    System.out.println(e);
    continue;
    }

    new SocketHandler(incoming).start();

    }
    }
    }

    class SocketHandler extends Thread {

    Socket incoming;

    SocketHandler(Socket incoming) {
    this.incoming = incoming;
    }

    public void run() {
    try {
    BufferedReader reader =
    new BufferedReader(new InputStreamReader(
    incoming.getInputStream()));
    PrintStream out =
    new PrintStream(incoming.getOutputStream());
    out.println("Hello. Enter BYE to exit");

    boolean done = false;
    while ( ! done) {
    String str = reader.readLine();
    if (str == null)
    done = true;
    else {
    out.println("Echo: " + str);
    if (str.trim().equals("BYE"))
    done = true;
    }

    }
    incoming.close();
    } catch(IOException e) {
    e.printStackTrace();
    }
    }

    Előre is köszi.

    üdv bolvar

Új hozzászólás Aktív témák