Java POP3-Server kommuniziert nicht mit Client

DeRal

Grünschnabel
Hi,
ich soll für die Uni einen POP3-"Sammeldienst" schreiben. Das einsammeln der Mails von den unterschiedlichen Servern klappt auch schon bestens, allerdings funktioniert das Bereitstellen der Mails (die Serverfunktion des Programms) nicht.
Wenn ich versuche, die Mails mit Thunderbird abzurufen, sprechen Client und Server zwar anfangs miteinander, allerdings geht es nach dem Verbindungsaufbau nicht weiter.
Im Anhang ist ein Bild wie die Kommunikation läuft. Eigentlich müsste es nach dem "+OK Hi!" mit dem Login - oder zumindest irgendeinem anderen Befehl, vom Client aus - weitergehen.
Der zuständige Code sieht so aus:
Code:
	public ServerThread(Socket client, Server parent){
		this.client = client;
		DateFormat df = new SimpleDateFormat("dd-MM-yy_hh-mm-ss");
		this.parent = parent;
		System.out.println("ServerThread gestartet für: "+client.toString());
		try {
			readClient = new BufferedReader(new InputStreamReader(client.getInputStream()));
			writeClient = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
			fw = new FileWriter(df.format(new Date())+"_ServerLog.txt");
			logger = new BufferedWriter(fw);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void commOut(String text) throws IOException{
		writeClient.write(text);
		writeClient.flush();
		System.out.println(text);
		logger.write(text);
	}
	
	public String commIn() throws IOException{
		String in = readClient.readLine();
		System.out.println(in);
		logger.write(in);
		return in;
	}
	
	@Override
	public void run() {
		// Mails zur Verfügung stellen
		System.out.println("run beginnt");
		while(running){
			try {
				// Anfrage annehmen
				commOut("+OK Hi!");
				String request = commIn();
				System.out.println(request);
				String[] commands = request.split(" ");
				String command = commands[0].toUpperCase();

// Befehle verarbeiten...

Da Thunderbird ja mit anderen POP3-Servern problemlos kommuniziert, vermute ich das Problem irgendwo im Programm, allerdings hab ich keine Idee wo...
Hat jemand ne Idee, wo das Problem liegen könnte?
 

Anhänge

  • nicht_funktionierend.png
    nicht_funktionierend.png
    16,3 KB · Aufrufe: 21
Danke, war sehr hilfreich!
Der Fehler war eigentlich ganz simpel: Ich habe bei der Antwort des Servers die Zeilenumbrüche vergessen, sodass der Client nie mitbekommen hat, dass er weitermachen kann.
writeClient.write(text); musste deshalb zu writeClient.write(text+"\r\n"); geändert werden, dann war das Problem gelöst. :)
 
Zurück