Avatar billede firehat Nybegynder
27. november 2003 - 15:52 Der er 9 kommentarer og
1 løsning

Problem med netværks..

Hey

Jeg er ved at prøve at lave en "webserver". Jeg vil gerne have så når man går ind på http://localhost:8001/X hvor X så kan være forskeligt. Men kan ikke finde ud af at skrive et forskelligt svar alt efter hvad X er. Min kode ser sådan her ud:

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


public class host {
  public static void main(String[] args) {
    try {
      ServerSocket vaerstsokkel = new ServerSocket(8001);
      while (true) {
        Socket forbindelse = vaerstsokkel.accept();
        PrintWriter ud = new PrintWriter(forbindelse.getOutputStream());

        BufferedReader ind = new BufferedReader(new InputStreamReader(forbindelse.getInputStream()));

        String anmodning = ind.readLine();

        System.out.println("Anmodning: "+anmodning);
        ud.println("Anmodning: "+anmodning);

        ud.flush();
        forbindelse.close();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Det skal også lige siges at jeg er ny til java - så forvendt ikke jeg forstår alt :)

Håber i kan hjælpe :)
Avatar billede arne_v Ekspert
27. november 2003 - 16:00 #1
Ved http://localhost:8001/X vil du læse en linie med:

GET /X HTTP/1.1

og den skal du så parse og reagere udfra hvad der står.

anmodning.split(" ")[1]

bør returnere "/X".

(hvis Java 1.4.x)
Avatar billede firehat Nybegynder
27. november 2003 - 16:03 #2
Det virker jo :D

Hvor kan jeg se hvilken version det er?
Avatar billede arne_v Ekspert
27. november 2003 - 16:06 #3
Bare brug kommandoen:

java -version

Det viser din version.
Avatar billede firehat Nybegynder
27. november 2003 - 16:06 #4
if (anmodning.split(" ")[1] == "/test") {
  ud.println("TEST");
}
else {
  ud.println("Anmodning: "+anmodning.split(" ")[1]);
}

Hvorfor virker det her ikke?

hvis jeg går ind på: http://localhost:8001/test burde den da skrive: "TEST" !?
Avatar billede arne_v Ekspert
27. november 2003 - 16:09 #5
Aldrig == på String altid equals !
Avatar billede arne_v Ekspert
27. november 2003 - 16:10 #6
if (anmodning.split(" ")[1].equals("/test")) {
Avatar billede firehat Nybegynder
27. november 2003 - 16:10 #7
equals??
Avatar billede arne_v Ekspert
27. november 2003 - 16:12 #8
Se eksempel
Avatar billede firehat Nybegynder
27. november 2003 - 16:13 #9
ahh..har fundet ud af:
anmodning.split(" ")[1].equals("/test")

:D
Avatar billede firehat Nybegynder
27. november 2003 - 16:14 #10
hehe...havde ikke lige set det over..

Men tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester