J'exécutais un programme de socket. Le programme est, juste en écho à l'entrée de l'utilisateur, par le serveur .ie si l'utilisateur donne une entrée comme Apple la réponse du serveur devrait être Apple. Mais le problème auquel je suis confronté est que le serveur envoie un message (à la place d'Apple) qui était le message de bannière que nous recevons lorsque nous nous connectons au serveur. Une fois le message de bannière terminé, l'erreur suivante s'affiche :Socket Programmation en Java
Exception in thread "main" java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at EchoClient.main(EchoClient.java:69)
Après mon code:
import java.net.*;
import java.io.*;
public class EchoClient
{
public static void main(String[] args) throws IOException
{
Socket echosocket = null;
PrintWriter out =null;
BufferedReader in=null;
//establish the socket connection between the client and the server
// open a PrintWriter and a BufferedReader on the socket:
try
{
echosocket = new Socket("ltesol1.comm.mot.com",22);
out=new PrintWriter(echosocket.getOutputStream(),true);
in=new BufferedReader(new InputStreamReader(echosocket.getInputStream()));
}
catch(UnknownHostException e)
{
System.err.print("Unable to find the host dkc678-01");
System.exit(1);
}
catch(IOException e)
{
System.err.print("No IO for host dkc678-01");
System.exit(1);
}
BufferedReader stdIn=new BufferedReader(new InputStreamReader(System.in));
String userInput;
while((userInput =stdIn.readLine())!= null)
{
out.println(userInput);
System.out.println("echo :" + in.readLine());
}
out.close();
in.close();
stdIn.close();
echosocket.close();
}
}
Veuillez formater votre code/message, utilisez le bouton 101010 pour le code. Je vous remercie. – Jochem
Faites un effort pour réduire le code à un programme minimal qui présente la faute. Vous avez actuellement un tas de choses non pertinentes mélangées. –
Veuillez arrêter le formatage du message à chaque modification. –