- Joined
- Jul 11, 2020
- Messages
- 0
- Reaction score
- 26
- Points
- 0
Hey,
ich habe auf basis von dem turorial von https://www.youtube.com/user/TuTCubeDE ein client chat oder wie das heißt geschrieben, weiß aber nicht genau wie ich das in mc einbinde und wie ich das nicht über den localhost sondern übereinen server laufen lasse (habe einen)
Hier meine Server Class:
Hier meine Client Class:
Danke im vorraus
~byaura
ich habe auf basis von dem turorial von https://www.youtube.com/user/TuTCubeDE ein client chat oder wie das heißt geschrieben, weiß aber nicht genau wie ich das in mc einbinde und wie ich das nicht über den localhost sondern übereinen server laufen lasse (habe einen)
Hier meine Server Class:
Code:
package simple.clientchatstuff;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;
import simple.clientchatstuff.utils.ConsoleWriter;
public class Server {
ServerSocket serverSocket;
ArrayList<PrintWriter> printWriters;
public static void main(String[] args) {
Server server = new Server();
if(server.runServer()) {
server.clientListener();
}else{
}
}
public class Handler implements Runnable {
Socket socket;
BufferedReader bufferedReader;
public Handler(Socket socket) {
try{
this.socket = socket;
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}catch(IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
String message;
try{
while((message = bufferedReader.readLine()) != null) {
ConsoleWriter.serverMessage("Von Client: " + message);
sendToAllClients(message);
}
}catch(IOException e) {
e.printStackTrace();
}
}
}
public boolean runServer() {
try{
serverSocket = new ServerSocket(1276);
ConsoleWriter.serverMessage("Started Server!");
printWriters = new ArrayList<PrintWriter>();
return true;
}catch(IOException e) {
ConsoleWriter.serverError("Couldn't start Server!");
e.printStackTrace();
return false;
}
}
public void clientListener() {
while(true) {
try{
Socket socket = serverSocket.accept();
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
printWriters.add(printWriter);
Thread thread = new Thread(new Handler(socket));
thread.start();
}catch(IOException e) {
e.printStackTrace();
}
}
}
public void sendToAllClients(String message) {
Iterator iterator = printWriters.iterator();
while(iterator.hasNext()) {
PrintWriter writer = (PrintWriter) iterator.next();
writer.println(message);
writer.flush();
}
}
}
Hier meine Client Class:
Code:
package simple.clientchatstuff;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import simple.clientchatstuff.utils.ConsoleWriter;
public class Client {
Socket socket;
PrintWriter printWriter;
BufferedReader bufferedReader;
public static void main(String[] args) {
Client client = new Client();
client.creatThread();
}
public void creatThread() {
if(!connectToServer()) {
}
Thread thread = new Thread(new MessagesFromServerListener());
}
public boolean connectToServer() {
try {
socket = new Socket("127.0.0.1", 1276);
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
printWriter = new PrintWriter(socket.getOutputStream());
ConsoleWriter.serverMessage("Connected to Server");
return true;
} catch(Exception e) {
ConsoleWriter.serverError("Coudn't connect to Server");
e.printStackTrace();
return false;
}
}
public void sendMessage(String username, String message) {
printWriter.write(username + ": " + message);
printWriter.flush();
}
public class MessagesFromServerListener implements Runnable {
@Override
public void run() {
String message;
try {
while((message = bufferedReader.readLine()) != null) {
ConsoleWriter.serverMessage(message);
}
} catch (IOException e) {
ConsoleWriter.serverError("Couldn't get message!");
e.printStackTrace();
}
}
}
}
Danke im vorraus
Last edited by a moderator: