NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Aktivity