Hallo Leuts,
habe ein kleines Programm geschrieben wo der Client dem Server dauerhaft eine Nachricht schicken soll, aber das macht er irgendwie nur einmal und danach ist schluss. Ich vermute das entweder Reader oder der Writer nicht richtig geschlossen werden bin mir aber nicht sicher. Vielleicht könnt ihr mir ja helfen.
Hier die 2 Klassen zum Server und zum Client:
habe ein kleines Programm geschrieben wo der Client dem Server dauerhaft eine Nachricht schicken soll, aber das macht er irgendwie nur einmal und danach ist schluss. Ich vermute das entweder Reader oder der Writer nicht richtig geschlossen werden bin mir aber nicht sicher. Vielleicht könnt ihr mir ja helfen.
Hier die 2 Klassen zum Server und zum Client:
Java:
public class Server
{
ServerSocket server;
BufferedReader reader;
PrintWriter writer;
Socket client;
public static void main(String args[])
{
Server s = new Server();
}
public Server()
{
try
{
server = new ServerSocket(6666);
System.out.println("Server gestartet");
client = server.accept();
System.out.println("neuer Client");
}
catch (IOException ex){}
declareStreamsWriterReader();
new Thread(new Action()).start();
}
private void declareStreamsWriterReader()
{
try
{
reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
writer = new PrintWriter(client.getOutputStream());
}
catch (IOException ex){}
}
public class Action implements Runnable
{
@Override
public void run()
{
String s;
while(true)
{
s = null;
try
{
if((s = reader.readLine()) != null)
{
System.out.println(s);
writer.write(s + "\n");
writer.flush();
}
}
catch (IOException ex){}
writer.close();
try
{
reader.close();
}
catch (IOException ex){}
}
}
}
}
Java:
public class Client
{
Socket client;
BufferedReader reader;
PrintWriter writer;
public static void main(String args[])
{
Client c = new Client();
}
public Client()
{
try
{
client = new Socket("localhost", 6666);
System.out.println("Client gestartet");
}
catch (UnknownHostException ex){}
catch (IOException ex) {}
declareStreamsWriterReader();
new Thread(new Action()).start();
}
private void declareStreamsWriterReader()
{
try
{
reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
writer = new PrintWriter(client.getOutputStream());
}
catch (IOException ex){}
}
public class Action implements Runnable
{
@Override
public void run()
{
int count = 0;
String s;
while(true)
{
writer.write("hallo " + count + "\n");
writer.flush();
count++;
s = null;
try
{
if((s = reader.readLine()) != null)
{
System.out.println(s);
}
}
catch (IOException ex){}
writer.close();
try
{
reader.close();
}
catch (IOException ex){}
}
}
}
}