Hallo leute,
Ich habe ein Problem und zwar möchte ich einem Server Nachrichten senden, nur wenn ich versuche dem Server eine Nachricht zu senden passiert beim Server nichts. Bitte um hilfe!
Hier ist der Code vom Server: (Der Client Sendet einfach nur mithilfe von PrintWriter eine nachricht)
Für das lesen von Nachrichten ist Zeile 79 zuständig!!!
Danke für die Hilfe!
Ich habe ein Problem und zwar möchte ich einem Server Nachrichten senden, nur wenn ich versuche dem Server eine Nachricht zu senden passiert beim Server nichts. Bitte um hilfe!
Hier ist der Code vom Server: (Der Client Sendet einfach nur mithilfe von PrintWriter eine nachricht)
Für das lesen von Nachrichten ist Zeile 79 zuständig!!!
Java:
package Fireflo13.ChatProgramm.Server;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Scanner;
import com.Fireflo13.Specials.Specials;
public class Server {
static ServerSocket server;
static Socket Connection;
static ArrayList<OutputStream> List_OutputStreams = new ArrayList<OutputStream>();
static ArrayList<InputStream> List_InputStreams = new ArrayList<InputStream>();
static int Client_Counter = -1;
static Specials SC = new Specials();
public static void main(String[] args) {
if (ServerStart(2014)) THE_SERVER();
else if (ServerStart(5070)) THE_SERVER();
else if (ServerStart(3127)) THE_SERVER();
else {
System.err.println("Alle ports auf denen der Server getestet hat, sind blockiert!");
System.err.println("Bitte Schließen sie Programme mit diesen Ports!");
}
}
private static boolean ServerStart(int port) {
try {
server = new ServerSocket(port);
System.err.println("Server gestartet mit port: " + server.getLocalPort());
return true;
} catch (IOException e) {
System.err.println("Server mit port: " + port + " konnte nicht gestartet werden!");
return false;
}
}
//Connection Listener -------------------------------------------------------------------------------------------------------------
static Thread ConnListener = new Thread() {
public void run() {
while (true) {
try {
if ((Connection = server.accept()) != null) {
System.out.println("Client wurde empfangen!");
if (List_OutputStreams.add(Connection.getOutputStream())) {
if (List_InputStreams.add(Connection.getInputStream())) {
Client_Counter++;
System.out.println("ID wurde zugewiesen: Client NR." + Client_Counter);
//Client -------------------------------------------------------------------------------------------------------------------------
Thread Client = new Thread() {
@SuppressWarnings("resource")
public void run() {
int ill = 0;
int id = Client_Counter;
String nachricht = null;
InputStream inStream = List_InputStreams.get(id);
Scanner in = new Scanner(inStream);
while (true) {
try {
System.err.println("Das ist ein Schleifendurchgang! " + inStream.available());
//inStream.availble() = 0!!!
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Lesen von Nachrichten nur hier passiert nichts : (
nachricht = in.nextLine();
if (nachricht != null) {
int i = Client_Counter;
System.out.println(": " + nachricht);
while (i != -1) {
System.out.println(i);
OutputStream pp = List_OutputStreams.get(i);
PrintWriter pr = new PrintWriter(pp);
pr.println(nachricht + ill++);
pr.flush();
i--;
}
}
System.err.println("Schleifenende!");
}
}
};
Client.start();
}
}
else {
System.err.println("Es gab einen Fehler bei der zuweisung der ID eines Clients!");
Connection.close();
}
}
} catch (IOException e) {
System.err.println("Es gab ein Fehler bei der Akzeptierung eines Clients!");
}
}
}
};
//Server HauptThread --------------------------------------------------------------------------------------------------------------
private static void THE_SERVER() {
ConnListener.start();
}
}
Danke für die Hilfe!
Zuletzt bearbeitet: