L'envoi et la Réception de données XML sur TCP
J'ai été à essayer de comprendre comment envoyer et recevoir des Données XML sur un Serveur TCP. Je suis venue à partir d'une programmation java arrière-plan, donc je suis un peu hors de ma profondeur ici. Mon programme fonctionne si j'envoie juste du texte brut, cependant une fois que j'essaie d'envoyer les données xml se bloque. Le serveur ne reçoit le message.
J'ai été la recherche de code pour faire cela et n'ai pas trouvé un peu de chance, j'ai vu beaucoup d'exemples de code en ligne qui ne fonctionnent pas. merci si vous pouvez résoudre ce problème je serais très reconnaissant.
S'il vous plaît je suis à la recherche d'exemples de code ici, pas d'explications sur ce que je dois faire pour résoudre le problème. J'ai seulement été codage en C# pour quelques jours.
Voici un exemple de Demande XML.
<?xml version="1.0" encoding="utf-8"?>
<ClientRequest>
<Product>AGENT</Product>
<Method>GET_SYSTEM_INFO</Method>
<ClientId>UMOHB</ClientId>
<Params>
<Param Value="umohb" Key="username" />
<Param Value="password" Key="password" />
<Param Value="localhost" Key="hostname" />
</Params>
</ClientRequest>
Voici mon Client TCP Code
public static void sendStringRequest(String hostname, int port, String message)
{
String response = String.Empty;
TcpClient client = getConnection(hostname, port);
Console.WriteLine(message);
NetworkStream stream = client.GetStream();
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8);
writer.AutoFlush = false;
writer.Write(Encoding.UTF8.GetBytes(message).Length);
writer.Write(message);
writer.Flush();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
response = reader.ReadLine();
stream.Close();
}
OriginalL'auteur greenkode | 2012-02-20
Vous devez vous connecter pour publier un commentaire.
Ne pas lire avant d'avoir vidé l'écrivain.
reader.ReadLine();
le message passe avec succès sur le serveur. J'ai essayé de la fermeture ou de l'élimination des Ruisseaux ou des Écrivains, cependant que ferme le Socket trop. Est-il de toute façon à indiquer au serveur que l'action de l'Écriture est-elle complète?Le flux est le flux réseau. Il ne doit pas être fermé, sauf si vous êtes fait.
nan c'est pas ça. J'ai mis à jour le code du client ci-dessus. Ses exactement identique à la vôtre. toujours le même problème. pourrait-il être un problème sur le serveur? Je suis sur un Serveur java. J'en doute, mais, depuis l'envoyer traverse gentiment si je commente la
reader.ReadLine()
code. MerciOriginalL'auteur jgauffin
Essayer quelque chose comme cela:
OriginalL'auteur Kamil Emeleev