22. marts 2012 - 23:54Der er
6 kommentarer og 1 løsning
Client/Server applikation udveksling af data
Hej eksperter,
Jeg arbejder på en klient/server applikation hvor klienten kan spørge serveren efter data via XML (har jeg forestillet mig) over ip.
Når serveren modtager en request fra klienten har jeg brug for at identificere hvad der bliver spurgt efter i XML strengen.
Hvis klient applikationen eksempelvis spørger server applikationen efter en fra og til værdi, så har jeg forestillet mig at sende disse to værdier til server applikationen, som fra en SQL Server henter disse data og sender dem til klient applikationen.
Kan jeg på en eller anden måde identificere klientens forespørgel ved at sætte et "navn" på den, sammen med de to værdier jeg spørger efter, så jeg ved at når forespørgelsen med navnet f.eks. TOPLISTE ankommer, så ved jeg at denne forespørgsel kræver to variabler som XML strengen indeholder?
Det var også sådan jeg har tænkt den del af det, men det er mere fortolkningen af XML strengen, hvor værdierne efterfølgende skal bruges i en SQL query.
Jeg regner med at server applikationen skal håndtere op til 150 forskellige forespørgelser.
Så jeg kunne godt bruge noget hjælp til en rutine, der fortolker XML strengen.
Med et format som ovenfor saa hiver du foerst function og parameters noderne ud, saa laver du en switch paa function og traekker de specifikke data ud af parameters.
Namespace E Public Class Program Public Shared Sub TopList(fromp As Integer, top As Integer) Console.WriteLine("TopList " & fromp & " " & top) End Sub Public Shared Sub Echo(val As String) Console.WriteLine("Echo " & val) End Sub Public Shared Sub Process(xml As String) Dim doc As New XmlDocument() doc.LoadXml(xml) Dim func As String = doc.SelectSingleNode("/request/function/text()").Value Dim n As XmlNode = doc.SelectSingleNode("/request/parameters") Select Case func Case "TOPLIST" Dim fromp As Integer = Integer.Parse(n.SelectSingleNode("from/text()").Value) Dim top As Integer = Integer.Parse(n.SelectSingleNode("to/text()").Value) TopList(fromp, top) Exit Select Case "ECHO" Dim val As String = n.SelectSingleNode("val/text()").Value Echo(val) Exit Select Case Else Throw New Exception("Unknown function") End Select End Sub Public Shared Sub Main(args As String()) Dim s1 As String = "<request><function>TOPLIST</function><parameters><from>1</from><to>2</to></parameters></request>" Dim s2 As String = "<request><function>ECHO</function><parameters><val>ABC</val></parameters></request>" Process(s1) Process(s2) Console.ReadKey() End Sub End Class End Namespace
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.