Odeslani XML pres TCP/IP
C# .NET
public void HandleClient(object tcpClient) {
TcpClient client = (TcpClient) tcpClient;
var stream = client.GetStream();
string data = null;
byte[] bytes = new Byte[2560];
int i;
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) {
var serializer = new XmlSerializer(typeof (AlarmMessage));
using(TextReader reader = new StringReader(data)) {
var result = (AlarmMessage)serializer.Deserialize(reader);
if (result != null) {
// ulozeni dat z result
// ZDE ODESILAM POTVRZENI KLIENTOVI
byte[] reply = ConfirmReceive(result.Ref);
stream.Write(reply, 0, reply.Length);
client.Close();
}
}
if (!client.Connected)
break;
}
}
// vytvori xml odpoved ve formatu <ack ref="refId" />
private byte[] ConfirmReceive(int refId) {
var ack = new AlarmAcknowledgement {
Ref = refId
};
var serializer = new XmlSerializer(typeof (AlarmAcknowledgement));
var ns = new XmlSerializerNamespaces();
ns.Add("", "");
Encoding unicode = Encoding.UTF8;
using(var sww = new StringWriter()) {
using(XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings() {
OmitXmlDeclaration = true
})) {
serializer.Serialize(writer, ack, ns);
var xml = sww.ToString();
writer.Close();
return unicode.GetBytes(xml);
}
}
}
Neformátovaný
Přidáno: 9.8.2022
Expirace: Neuvedeno