Le programme ci-dessous provoque ce problèmeconnexion Socket refusé dans le code client
ÉDITÉE:
import java.io.*;
import java.net.*;
public class smtpClient {
public static void main(String[] args) {
// declaration section:
// smtpClient: our client socket
// os: output stream
// is: input stream
Socket smtpSocket = null;
DataOutputStream os = null;
DataInputStream is = null;
// Initialization section:
// Try to open a socket on port 25 : step 1
// Try to open input and output streams: step 2
try {
smtpSocket = new Socket("192.168.1.2", 1024);
os = new DataOutputStream(smtpSocket.getOutputStream());
is = new DataInputStream(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");
}
// If everything has been initialized then we want to write some data
// to the socket we have opened a connection to on port 25
if (smtpSocket != null && os != null && is != null) {
try {
// The capital string before each colon has a special meaning to SMTP
// you may want to read the SMTP specification, RFC1822/3
os.writeBytes("HELO\n");
os.writeBytes("MAIL From: [email protected]\n");
os.writeBytes("RCPT To: [email protected]\n");
os.writeBytes("DATA\n");
os.writeBytes("From: [email protected]\n");
os.writeBytes("Subject: testing\n");
os.writeBytes("Hi there\n"); // message body
os.writeBytes("\n.\n");
os.writeBytes("QUIT");
// keep on reading from/to the socket till we receive the "Ok" from SMTP,
// once we received that then we want to break.
String responseLine;
while ((responseLine = is.readLine()) != null) {
System.out.println("Server: " + responseLine);
if (responseLine.indexOf("Ok") != -1) {
break;
}
}
// clean up:
// close the output stream
// close the input stream
// close the socket
os.close();
is.close();
smtpSocket.close();
} catch (UnknownHostException e) {
System.err.println("Trying to connect to unknown host: " + e);
} catch (IOException e) {
System.err.println("IOException: " + e);
}
}
}
}
journal de la console:
Couldn't get I/O for the connection to: hostname
Le programme que je pris est de: http://www.javaworld.com/jw-12-1996/jw-12-sockets.html?page=4
J'ai déjà essayé de modifier le port de 25 à 1024
Je l'exécute sur mon PC local, donc je suis administrateur sur ce système, mais je ne sais pas s'il y a un problème de pare-feu par défaut (en cours d'exécution dans Eclipse sous Windows 7)
Selon vos commentaires ci-dessous: dois-je faire une listner, qui signifie dire un socket serveur, qui écoutera les requêtes client smtp
Y at-il quelque chose qui écoute sur le port 1024 sur cette adresse IP? –
juste se demandant - est-ce qu'il y a quelque chose qui écoute réellement sur ce port et IP spécifié? – evilruff
1024 est le port réservé de toute façon ... – Zavior