SMTP Client - readline problem

Status
Nicht offen für weitere Antworten.

0din

Bekanntes Mitglied
Guten Morgen,

ich bin z.Z. an einem SMTP client zugange (auch dem Server)
nun wollt ich mein prog mal eben warten lassen un lauschen was der server mir so zurück gibt. problem dabei is, die readline methode wird einmal ausgeführt und mein prog läuft irgendwo weiter ohne das ich wüsste wo...

mal eben den code:
Java:
package IN22;

import java.io.*;
import java.net.*;
import java.util.ArrayList;

public class SmtpClient
{

	private static BufferedReader is;
	private static DataOutputStream os;
	private static Socket smtpSocket;
	private static ArrayList<String> commands;

	public static void main(String[] args)
	{
		Thread t1 = new Thread(new SmtpServer());
		t1.start();

		commands = new ArrayList<String>();
		commands.add("EHLO");
		commands.add("MAIL From: [email]no.mam@gmail.com[/email]");
		commands.add("RCPT To: [email]no.mam@gmail.com[/email]");
		commands.add("DATA");
		commands.add("From: [email]no.mam@gmail.com[/email]");
		commands.add("Hello Google!");
		commands.add("\n.");
		commands.add("QUIT");

		smtpSocket = null;
		os = null;
		is = null;
		// Port 25 is voor SMTP
		try
		{
			smtpSocket = new Socket("localhost", 25);
			os = new DataOutputStream(smtpSocket.getOutputStream());
			is = new BufferedReader(new InputStreamReader(smtpSocket.getInputStream()));
		}
		catch (UnknownHostException e)
		{
			System.err.println("Don't know about host: hostname");
		}
		catch (IOException e)
		{
			System.err.println("Couldn't get I/O for the connection to: hostname");
		}
		// Als alles goed zit sturen we een bericht
		if (smtpSocket != null && os != null && is != null)
		{
			try
			{
				//iedere bericht in de arraylist wordt verstuurd
				for (String st : commands)
				{
					os.writeBytes("" + st + "\n");
					while (!waitForResponse())
					{
						try
						{
							Thread.sleep(1000);
							os.writeBytes("" + st + "\n");
						}
						catch (InterruptedException e)
						{
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}

				// en nu sluiten we alle verbindingen
				os.close();
				is.close();
				smtpSocket.close();
			}
			catch (UnknownHostException e)
			{
				System.err.println("Onbekende Host" + e);
			}
			catch (IOException e)
			{
				System.err.println("IOException: " + e);
			}
		}
	}

	@SuppressWarnings("deprecation")
	public static boolean waitForResponse() throws IOException
	{
		boolean ret = false;

		String input = null;

		while (input == null)
		{
			input = is.readLine(); //hier Gibts probleme !!!!!!!!!!!!!!!!!!!!
		}
		System.out.println(input);
		int code = Integer.parseInt(input);

		switch (code)
		{
		case 250:
		{
			ret = true;
			break;
		}
		case 354:
		{
			ret = true;
			break;
		}
		case 221:
		{
			ret = true;
			break;
		}
		default:
		{
			ret = false;
			break;
		}
		}

		return ret;
	}
}
da des auf NL is hab ich mal eben nen deutschn kommentar mit einigen ausrufezeichen dazu gemacht, wo ich den fehler vermute bzw wo er auftritt

schonmal danke für die hilfe
 
Zuletzt bearbeitet von einem Moderator:

Geeeee

Bekanntes Mitglied
Hatte auch das Problem bei dem naiven Versuch das Telnet-Verhalten nachzubauen. Gleiche stelle und keine Ahnung, wie man es umgehen kann. Irgendwie scheint der Server die Antwort nicht richtig zu beenden / schließen.
Bin nun wieder bei JavaMail und da hast du auch keine Probleme. Spricht etwas dagegen, es zu verwenden?
 

0din

Bekanntes Mitglied
ich habs nu do no aufgelöst, war dümmer als erwartet...

der bufferedReader nimmt das ende der line nur wahr, wenn es mit \n geschlossen wurde.
der server hatte aber das \n nich mit geschickt also wartete der BR die ganze zeit auf das zeilenende.
 

Geeeee

Bekanntes Mitglied
Rein interessehalber: Wie hast du das Ende der Zeilen nun gefunden? Du hast ja wahrscheinlich bzw. hoffentlich nicht den End-Text jedes Befehls ausgelesen. Bei mir war das Problem, dass auch bei einem read() auf -1 überprüfen nix gebracht hat, weil es nie zutraf.
 

0din

Bekanntes Mitglied
naja, ich musste den client schreiben, dazu braucht ich aber auch n primitiven server...
der server hat bei seinen rückmeldungen aber nie das \n mit geschickt...

das is mir rein zufällig aufgefallen als ich ne weitere meldung rein geschrieben hab, vorher hab ichs übersehn.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
T imap (oder pop3/smtp) - client mit Java entwickeln Netzwerkprogrammierung 2
C SMTP-Host automatisch ermittlen Netzwerkprogrammierung 15
C Socket Kommunikation mit SMTP-Server Netzwerkprogrammierung 4
F Java SMTP Server Netzwerkprogrammierung 9
S SMTP Server per Telnet ansprechen Netzwerkprogrammierung 11
T SMTP Header Größe Netzwerkprogrammierung 18
B Sendefehler bei SMTP Netzwerkprogrammierung 17
K Mit Java-MailAPI dir Verfügbarkeit eines SMTP-Servers prüfen Netzwerkprogrammierung 4
D Timeouts ohne Ende bei SMTP und FTP Netzwerkprogrammierung 3
M SMTP-Mail Netzwerkprogrammierung 2
G POP vor SMTP Netzwerkprogrammierung 4
E smtp Zugriffsproblem mit Java Mail API Netzwerkprogrammierung 3
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0
T Application Client NullPointerExc Netzwerkprogrammierung 7
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
X RMI: Woher kennt der Client das Schnittstellen-Interface? Netzwerkprogrammierung 2
E Thematik Client server Netzwerkprogrammierung 2
D UDP Client empfängt nichts Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Client Anwendung mit zentraler SQL-Datenbank Netzwerkprogrammierung 3
N Client Identifikation eines Servers Netzwerkprogrammierung 1
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
D SSH Client Netzwerkprogrammierung 7
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
B TCP Client Android Netzwerkprogrammierung 3
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
OnDemand Ist Client noch angemeldet? Netzwerkprogrammierung 7

Ähnliche Java Themen


Oben