Socket problemer
Har følgende:import java.io.*;
import java.net.*;
class ClientHandler extends Thread {
protected Socket incoming;
public ClientHandler(Socket incoming) {
this.incoming = incoming;
}
public void run() {
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));
PrintWriter out = new PrintWriter(new OutputStreamWriter(incoming.getOutputStream()));
out.println("Hello! This is The Munny Server");
out.println("COMMANDS BYE , GETDIR");
out.flush();
out.close();
for (;;)
{
String str = in.readLine();
if (str == null)
{
break;
}
else
{
out.flush();
System.out.println("Received: " + str);
if (str.trim().equals("BYE"))
break;
if (str.trim().equals("GETDIR"))
{
out.println("Echo: " + str);
out.println("C:\\film3.AVI");
out.println("C:\\film2.AVI");
out.println("C:\\film.AVI");
out.println("C:\\test.RAR");
out.flush();
}
}
}
System.out.println("Connection closed");
incoming.close();
}
catch (Exception e)
{
System.out.println("Error: " + e);
}
}
}
public class MultiEchoServer {
public static void main(String[] args)
{
System.out.println("MultiEchoServer started.");
try
{
ServerSocket s = new ServerSocket(8009);
for (;;)
{
Socket incoming = s.accept();
System.out.println("Connection Accepted");
new ClientHandler(incoming).start();
}
}
catch (Exception e)
{
System.out.println("Error: " + e);
}
System.out.println("MultiEchoServer stopped.");
}
}
OG
import java.io.*;
import java.net.*;
public class Client
{
BufferedReader in;
BufferedReader ink;
PrintWriter out;
String input;
Socket t;
String str;
public void process() throws IOException
{
while((str =in.readLine())!= null)
{
System.out.println(str);
}
System.out.println("Processed");
}
public void connect(String hostname) throws IOException
{
t = new Socket(hostname, 8009);
in = new BufferedReader(new InputStreamReader(t.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(t.getOutputStream()));
ink = new BufferedReader(new InputStreamReader(System.in));
process();
System.out.print("> prompt ");
while ((input=ink.readLine()) != null)
{
out.println(input);
out.flush();
process();
if(input.equalsIgnoreCase("BYE"))
break;
System.out.print("> prompt ");
}
}
}
OG
class EchoClient {
public static void main(String[] args)
{
Client c = new Client();
c.connect("localhost");
}
}
Men jeg kan ikke få det til at spille..
Min klient skriver velkomstbeskeden ud men det er så også det, den forsætter ikke efter at input er skrevet færdig.
Hvis jeg vælger et lukke "out.close();" efter min velkomst besked på serversiden er skrevet ud så forsætter den ?? er der noget galt med mit loop i process() metoden eller er det forbindelsen det er galt med ?? lader til at den står og venter på mere input men burde out.flush(); ikke sørge for at in.readLine() ville blive null ??
Eller har jeg lavet en bommert et sted ??
