jeg sidder med 3 filer ... KKMultiServer.java som gernere flere KKMultiServerThread(tråde) som alle bruger en KnockKnockProtocol
i KKMultiServeren laver jeg et en liste med varible public List nameList = new List(); som jeg ønsker at tilføre nogle værdier i protokollen (ok not nice men det kommer til at virke)
dvs noget nameList.add(nytNavn); -----------------------------------------------------------------
public class KKMultiServerThread extends Thread { private Socket socket = null;
public KKMultiServerThread(Socket socket) { super("KKMultiServerThread"); this.socket = socket; }
public void run() {
try { PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream()));
public class KnockKnockProtocol { private static final int WAITING = 0; private static final int LogIn = 1; private static final int AllFine = 2; private static final int ANOTHER = 3;
private static final int NUMJOKES = 5;
private int state = WAITING; private int currentJoke = 0;
private String[] clues = { "Turnip", "Little Old Lady", "Atch", "Who", "Who" }; private String[] answers = { "Turnip the heat, it's cold in here!", "I didn't know you could yodel!", "Bless you!", "Is there an owl in here?", "Is there an echo in here?" };
public String name = null;
extern nameList ; <--- MIT GÆT
public String processInput(String theInput) { String theOutput = null;
if (state == WAITING) { theOutput = "What is your name?"; // client state = LogIn; } else
if (state == LogIn) { name = theInput; theOutput = "Welcome " + name + "\n To get all the names type 'list'"; state = AllFine; } else
if (state == AllFine && theInput.equalsIgnoreCase("list")) { theOutput = name ; } else
if (state == LogIn) { if (theInput.equalsIgnoreCase("y")) { theOutput = "Knock! Knock!"; if (currentJoke == (NUMJOKES - 1)) currentJoke = 0; else currentJoke++; state = LogIn; } else { theOutput = "Bye."; state = WAITING; } } return theOutput; } }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
ja men så bliver den ikke rettet dynamisk - men kun når der bliver lavet en ny af dem. Dvs den første client opdaer "vist" ikke at der kommer endnu en client
sidder nu med en C:\Documents and Settings\Dyret Ole\Skrivebord\DIST\opgave1\KKMultiServer.java:11: non-static method somethingNoneStatic() cannot be referenced from a static context int b = somethingNoneStatic(); ^ 1 error
Tool completed with exit code 1
Jeg mener det er et standard trik at komme væk fra static metoder
------------------------------------------------------------------------ import java.net.*; import java.io.*; import java.awt.List; public class KKMultiServer {
public List nameList;
public static void main(String[] args) throws IOException {
try{ int b = somethingNoneStatic(); } catch (Exception e) { System.err.println("somethingNoneStatic()"+ e);
} }
public int somethingNoneStatic(){ ServerSocket serverSocket = null; boolean listening = true;
try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(-1); }
jamen det var mig der var spade dum .... jeg tænkte bare for meget C++ og ikke Java
Synes godt om
Ny brugerNybegynder
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.