Listener Java TcpClient C#
Bonjour,
je cherche à récupérer des données d'un serveur Java à l'aide d'un code C#.
En gros traduire le code Java suivant qui fonctionne parfaitement en C#.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| public StringCollection LoadDataFromWebService()
{
try
{
Socket AdisSocket;
DataInputStream AdisDataInputStream;
PrintStream AdisPrintStream;
StringCollection AdisDataInMemory = new StringCollection();
String Line = null;
//Instanciation du socket
AdisSocket = new Socket(AdisClient.Properties.Settings.get_Default().get_WebServiceName(), AdisClient.Properties.Settings.get_Default().get_WebServicePort());
//Instanciation du DataInputStream
AdisDataInputStream = new DataInputStream(AdisSocket.getInputStream());
//Instanciation du PrintStream
AdisPrintStream = new PrintStream(AdisSocket.getOutputStream());
//Envoi de la chaine de connection
AdisPrintStream.println(AdisClient.Properties.Settings.get_Default().get_WSConnectionString());
//Envoi de la requête
AdisPrintStream.println(AdisClient.Properties.Settings.get_Default().get_WSQuery());
// Lecture du DataInputStream
Line = AdisDataInputStream.readLine();
while ((Line != null))
{
//Chargement en mémoire des informations récupérées du LKV
AdisDataInMemory.Add(Line);
Line = AdisDataInputStream.readLine();
if (Line.startsWith("T") || Line.startsWith("tE")) break;
}
//Deconnection
AdisPrintStream.println("ZN");
//System.out.println(AdisDataInputStream.readLine());
AdisSocket.close();
return AdisDataInMemory;
}
catch (System.Exception e)
{
System.out.println(e.get_Message());
return null;
}
} |
Mon code C# :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Stream telnetStream = AdisTcpClient.GetStream();
StreamWriter output = new StreamWriter(telnetStream);
StreamReader input = new StreamReader(telnetStream);
AdisTcpClient.SendTimeout = 1000;
//AdisTcpClient.Client.Connect(Settings.Default.WebServiceName, Settings.Default.WebServicePort);
output.Write(Settings.Default.WSConnectionString);
output.Write(Settings.Default.WSQuery);
AdisTcpClient.ReceiveTimeout = 1000;
NetworkStream networkStream = AdisTcpClient.GetStream();
if (networkStream.CanWrite)
{
if (networkStream.CanRead)
{
input = new StreamReader(AdisTcpClient.GetStream());
string readLine = input.ReadLine();
}
} |
Le code plante sur mon readLine de mon inputstream et mon TcpClient se déconnecte.
L'erreur est la suivante :
Citation:
IOException
Impossible de lire les données de la connexion de transport : Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu.
Ma question est donc la suivante :
Y a-t-il des problème de compatibilité connue entre Java et .Net dans ce type de problématique ?
Sinon quelqu'un a t il une idée ?
Merci de vos réponse