Hallo liebes Forum,
ich möchte einen kleinen Chat schreiben und benötige ein wenig Hilfe.
Ich habe schon ein paar Tutorials ausprobiert und komme trotzdem nicht ganz weiter.
Zum Ablauf:
1. Server starten(warten auf Verbindung) funktioniert
2. Connecten mit Client - funktioniert
3. Vom Client eine Nachricht an den Server schicken / funktioniert auch
Mein Problem:
4. Serververbindung aufrecht erhalten
5. eine weitere Nachricht an den Server schicken
Mein bisheriger Servercode:
Mein Client:
Ich bin für jede Hilfe dankbar.
Beste grüße
ich möchte einen kleinen Chat schreiben und benötige ein wenig Hilfe.
Ich habe schon ein paar Tutorials ausprobiert und komme trotzdem nicht ganz weiter.
Zum Ablauf:
1. Server starten(warten auf Verbindung) funktioniert
2. Connecten mit Client - funktioniert
3. Vom Client eine Nachricht an den Server schicken / funktioniert auch
Mein Problem:
4. Serververbindung aufrecht erhalten
5. eine weitere Nachricht an den Server schicken
Mein bisheriger Servercode:
Java:
package serverTest;
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket skt = new ServerSocket(50666);
Socket clientSocket = skt.accept();
clientSocket.setKeepAlive(false);
System.out.println("Connected..");
BufferedReader input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while((inputLine = input.readLine()) != null)
{
System.out.println(inputLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Mein Client:
Java:
package client;
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
Client client = new Client();
try {
client.test();
} catch (IOException e) {
e.printStackTrace();
}
}
void test() throws IOException {
String ip = "127.0.0.1"; // localhost
int port = 50666;
java.net.Socket socket = new java.net.Socket(ip,port); // verbindet sich mit Server
String zuSendendeNachricht = "Hello, xxxworld!\n";
schreibeNachricht(socket, zuSendendeNachricht);
String empfangeneNachricht = leseNachricht(socket);
System.out.println(empfangeneNachricht);
}
void schreibeNachricht(java.net.Socket socket, String nachricht) throws IOException {
PrintWriter printWriter =
new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()));
printWriter.print(nachricht);
printWriter.flush();
}
String leseNachricht(java.net.Socket socket) throws IOException {
BufferedReader bufferedReader =
new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
char[] buffer = new char[200];
int anzahlZeichen = bufferedReader.read(buffer, 0, 200); // blockiert bis Nachricht empfangen
String nachricht = new String(buffer, 0, anzahlZeichen);
return nachricht;
}
}
Ich bin für jede Hilfe dankbar.
Beste grüße