Une solution possible consiste à charger le fichier xml sous la forme d'une série de chaînes ou sous la forme d'un tableau d'octets et à l'envoyer. L'approche de tableau d'octets pourrait être la plus concise, en utilisant le network library networkcomms.net l'application appelant l'envoi ressemblerait à quelque chose comme ceci:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NetworkCommsDotNet;
namespace Client
{
class Program
{
static void Main(string[] args)
{
byte[] bytesToSend = File.ReadAllBytes("filename.xml");
TCPConnection.GetConnection(new ConnectionInfo("127.0.0.1", 10000)).SendObject("XMLData", bytesToSend);
Console.WriteLine("Press any key to exit client.");
Console.ReadKey(true);
NetworkComms.Shutdown();
}
}
}
et le serveur:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NetworkCommsDotNet;
namespace Server
{
class Program
{
static void Main(string[] args)
{
NetworkComms.AppendGlobalIncomingPacketHandler<byte[]>("XMLData", (packetHeader, connection, incomingXMLData) =>
{
Console.WriteLine("Received XMLData");
File.WriteAllBytes("filename.xml", incomingXMLData);
});
TCPConnection.StartListening(true);
Console.WriteLine("Server ready. Press any key to shutdown server.");
Console.ReadKey(true);
NetworkComms.Shutdown();
}
}
}
Vous aurez évidemment besoin de télécharger le NetworkCommsDotNet DLL du site Web afin que vous puissiez l'ajouter dans la référence 'using NetworkCommsDotNet'. Voir aussi l'adresse IP du serveur dans l'exemple du client est actuellement "127.0.0.1", cela devrait fonctionner si vous exécutez à la fois le serveur et le client sur la même machine. Pour plus d'informations, consultez également les articles getting started ou how to create a client server application.
Qu'avez-vous essayé, et où êtes-vous resté bloqué? "Socket" et "TcpClient" peuvent être des démarreurs utiles ici. Il n'y a rien de spécial à propos de XML lors de l'envoi via TCP. –
J'ai envoyé avec succès des chaînes sur une connexion tcp, Serait la même chose pour envoyer les données XML. Juste paquet le document XML dans une chaîne et l'envoyer sur TCP? Comment le nom de fichier du document XML serait-il transmis? Lorsque le système est en ligne, je reçois plusieurs documents XML à des moments aléatoires. Merci Stu – user2040454