java.net obliczenia

0

Witam
Jak mam napisac na wątkach, co pozmieniac gdy klient wpisuje jakąś liczbe to oblicza jej kwadrat, gdy wpisuje słowo witaj ->serwer wypisuje" witaj kliencie" natomiast jak wpisze koniec to zamyka się watek klienta

na razie mam tak ze serwer zwraca dokładnie to co napisze klient
public void run() {
try {
while (true) {
String str = in.readLine();

if (str.equals("KONIEC"))
break;

out.println(str);
}
System.out.println("Watek zakonczył działanie");
in.close();
out.close();
socket.close();
} catch (Exception e) {
System.out.println("Blad w run");
}
}
}

0

1. używaj tagu < code=java> (bez spacji pomiędzy < i code)!

  1. jak odbierasz ciąg od klienta to zamiast wypisywać, zamień go na liczbę Double.parseDouble() i dopiero wypisz.
0

i dalej nie wiem moze ktos mi to wytłumaczy:(

0

Najpierw przetłumacz pierwotne pytanie na język polski.
pozdrawiam

0

jakw programie klient wpisuje liczbe to serwer ma zwrocic kwadrat tej liczby, jak wpisuje koniec to konczy działanie programu klient i przerywa połaczenie z serwerem, jak w prog.klient wpiszemy witaj to serwer zwroci nam"Witaj Kliencie"

0
while(true)
{
  String str=in.readLine();
  if(str==null || str.equalsIgnoreCase("Koniec"))
  {
      break;
  }
  if(str.equalsIgnoreCase("Witaj"))
  {
     out.println("Witaj kliencie");
  }
  else
  {
    String answer="Nie rozumiem pytania";
    try
    {
        int liczba=Integer.parseInt(str);
        answer=liczba+"*"+liczba+" = "+(liczba*liczba);
    }
    out.println(answer);
  }
}

pozdrawiam

0

umiesciłam to co napisałes w
public void run() {
^i wywala bład

0

Straszne. Te bledy bywaja dobijajace. I jeszcze po angielsku - makabra. Kto to w ogole wymyslil? Dzieki, ze oszczedzilas nam trudu czytania tresci bledu, niektorzy bardzo tego nie lubia.

0

Trochę by ułatwiło gdybyś prócz opisu błędu napisał też jaki program zgłasza błąd: kompilator czy JVM ?

0

73: illegal start of expression
public void run() {

^

public void run() {
try {
while(true)
{
String str=in.readLine();
if(str==null || str.equalsIgnoreCase("Koniec"))
{
break;
}
if(str.equalsIgnoreCase("Witaj"))
{
out.println("Witaj kliencie");
}
else
{
String answer="Nie rozumiem pytania";
try
{
int liczba=Integer.parseInt(str);
answer=liczba+""+liczba+" = "+(liczbaliczba);
}
out.println(answer);
}
}

0
  1. Korzystaj ze znacznika
.
2. Który wiersz ma numer 73 ?
0

Nie ma zakończeń przy try-catch.

public void run() {
	try {
		while(true) {
			String str=in.readLine();
			if(str == null || str.equalsIgnoreCase("Koniec")) {
			      break;
			}
			if(str.equalsIgnoreCase("Witaj")) {
				out.println("Witaj kliencie");
  			} else {
   				 String answer="Nie rozumiem pytania";
				int liczba=Integer.parseInt(str);
       				answer=liczba+"*"+liczba+" = "+(liczba*liczba);
				out.println(answer);
			}
		}
	}catch(Exception ex) {
		System.out.println("Wystapil blad w trakcie dzialania metody run:\n"+ex.getClass().getCanonicalName()+"\nCause:\t"+ex.getCause());
		return;
	}
}
0
    try
    {
        int liczba=Integer.parseInt(str);
        answer=liczba+"*"+liczba+" = "+(liczba*liczba);
    }
    // tego co niżej brakowało
    catch(Exception e)
    {
    }

pozdrawiam

0

public void run() { tu jest ten błąd

0

if (str.equals("KONIEC"))
break;

//gdy koniec#od zera odpisuje serwer odpisuje to samo co podał kielient
out.println(str);
}
i dlaczego jak wpiszuje Witaj to serwer odpowiada witaj klience i jeszcze raz pisze "witaj"?

0

Nie no, nie moge. Wysiadlem. Masz jeszcze dla nas jakies zagadki pod tytulem 'zgadnij co robi 1000-linijkowy program na podstawie 2 linijek kodu' ?! Chcesz odpowiedz to sie postaraj napisac pytanie w formie czytelnej dla normalnego czlowieka! Na forum sa znaczniki, ktore formatuja kod do postaci bardziej przyjemnej - uzywaj ich! Napisz pytanie pelnym zdaniem, to bedzie mozna go przeczytac bez wymiotow po drodze! Opisz problem zakladajac, ze czytajacy nie znaja Twojego programu i nie wiedza co robi.

A odpowiadajac na Twoje 'pytania' (szumna nazwa, wiem):

  1. 'tu jest ten blad' - wow, znaczy w okolicy tej linijki jest blad, ale jaki to nie wiadomo, bo nie podalas okolicy.
  2. Dokladnie to samo. Dodatkowo serwer odpowiada 2x razy, bo tak go napisalas.

Tyle mniej wiecej mozna odpowiedziec na takie pytania. I nie spodziewalbym sie wiecej, poki nie zostana sformulowane w ogolnie przyjety sposob - czyli w jezyku polskim i z opisem. Przypominam, ze uzycie polskich slow w zdaniu nie gwarantuje powstania poprawnego zdania w jezyku polskim.

0
public void run() {
try {
while (true) {
String str = in.readLine();

if (str.equals("KONIEC"))
break;

   if(str.equals("Witaj")) 
  {
     out.println("Witaj kliencie jesteś podłaczony do serwerze");
  }
  
   try
    {
        int liczba=Integer.parseInt(str);
        str="Kwadrat liczby wynosi "+liczba+"*"+liczba+" = "+(liczba*liczba);
    }
        catch(Exception e)
    {}
    
//gdy komunikar rózny od KONIEC
//odpisuje to samo z powrotem do klienta
out.println(str);
}
0
<code>public void run() {
try {
while (true) {
String str = in.readLine();

if (str.equals("KONIEC"))
break;

   if(str.equals("Witaj")) 
  {
     out.println("Witaj kliencie ");
  }
  
   try
    {
        int liczba=Integer.parseInt(str);
        str="Kwadrat liczby wynosi "+liczba+"*"+liczba+" = "+(liczba*liczba);
    }
        catch(Exception e)
    {}
    
//gdy komunikar rózny od KONIEC
//odpisuje to samo z powrotem do klienta
out.println(str);
}

chodzi o to ze jak wpisuje witaj to serwer mi odpisuje witaj kliencie i zwraca witaj a nie powninien czy to tez mam umiescis w wątku?
0

Na samym koncu masz out.println(str) - czyli wypisujesz string. Poniewaz string rowny jest "Witaj" to wypisuje sie najpierw "Witaj kliencie" (bo if wchodzi), a pozniej wypisuje sie string (czyli "Witaj")- bo takie jest polecenie na koncu petli.

0

Bez urazy, ale jak na mój gust, to pisanie aplikacji klient-serwer, to na razie zbyt ambitne zadanie dla Ciebie. Masz problemy z podstawowymi instrukcjami kontroli sterowania (tutaj: warunki). Sugeruję przeniesienie postu do działu newbie.

Usuń ostatniego println albo weź go w "else".

1 użytkowników online, w tym zalogowanych: 0, gości: 1