je l'application cliente socket Java suivante, qui envoie même chaîne à la prise serveur:serveur ne reçoit pas octets écrits à une prise par application Java
import java.net.*;
import java.io.*;
public class ServerClient {
public static void main(String[] args) throws IOException {
System.out.println("Starting a socket server client...");
Socket client = new Socket("XXX.X.XXX.XX", 12001);
BufferedOutputStream stream = new BufferedOutputStream(client.getOutputStream());
String message = "ABC";
BufferedReader inputReader = new BufferedReader(new InputStreamReader(System.in));
String input = null;
while (true) {
System.out.print("Would you like to send a message to Server? ");
input = inputReader.readLine();
if (!input.equals("Y")) break;
System.out.println("Message to send: " + message);
System.out.println("Message length is: " + message.length());
byte[] messageBytes = message.getBytes("US-ASCII");
stream.write(messageBytes, 0, messageBytes.length);
stream.flush();
}
System.out.println("Shutting down socket server client...");
stream.close();
client.close();
inputReader.close();
}
}
Le premier message de temps est envoyé, le serveur reçoit le message; Cependant, chaque fois que j'essaie d'envoyer ce message, le serveur ne reçoit rien. Le message disparaît simplement. J'écris avec succès sur le socket (pas d'exception) mais rien ne vient de l'autre côté du tuyau (ou du moins c'est ce que l'on me dit). Je n'ai pas accès à l'application, aux journaux ou au code du serveur. Je me demande donc s'il existe une approche que vous pouvez recommander pour déterminer pourquoi le serveur ne reçoit pas les messages suivants. Toutes les idées seraient grandement appréciées!
Précision:
nouvelles lignes ne sont pas attendues par le serveur; Sinon, comment recevrait-il même un message la première fois? Comme essai et erreur, j'ai essayé d'envoyer '\ n' et "\ r \ n" et les caractères 0x00 à la fin de la chaîne - le tout sans aucune chance. Je pensais que le flush était un problème, j'ai donc essayé différentes classes de sortiestream (PrintStream, PrintWriter, FilterOutputStream), mais je rencontrais toujours les mêmes problèmes. Alors, si le "flush" est un problème, comment ça marche la première fois?
Essayé en utilisant TCP Test Tool et obtenir le même résultat. On dirait que le problème est avec le côté serveur, pas avec le flux java ou le flush. Essayer de savoir si je suis autorisé à exécuter Network Analyzer. Got Wireshark à ces fins. –