LeKuchen: "Komponenten"

Beitrag lesen

Hallo,

also ich habe was Ähnliches Client-Server-mäßiges (wenn ich dich richtig verstanden habe) gebastelt. Vielleicht hilft es Dir ja.

-->Zuerst habe ich eine Webapplikation auf ASP-Basis. Da steht im Code sowas:

<%
Response.ContentType = "Application/VbIeClient"
%>
<report Projekt="<%=Request.querystring("Projekt")%>" Report="<%=Request.querystring("Report")%>" DokNr="<%=Request.querystring("DokNr")%>" DokDatum="<%=Request.querystring("DokDatum")%>" ip="<%=Request.ServerVariables("LOCAL_ADDR")%>" secure="n"/>
<%
response.end
%>

-->Das wird über den Browser aufgerufen. Auf den Rechnern mit dem Client ist ein Dateityp/Anwendung für die Application registriert.

-->Der Client (VB6, da unter Win98 laufen soll) öffnet sich.

--> Im Client arbeite ich die das XML-Kommando ab. (xmlDoc.Load(Command$))

--> Wenn der Client noch was vom Server braucht, nutze ich folgende Funktionen:

Public Function getFileFromServer(serverpath As String, FileName As String, savepath As String) As Boolean
    Dim xmlHttpReq As MSXML2.XMLHTTP30
    Dim fi As Long
    getFileFromServer = False
    On Error GoTo SendFileError
    Set xmlHttpReq = New MSXML2.XMLHTTP30
    xmlHttpReq.open "get", serverpath & FileName, False
    xmlHttpReq.send
    If xmlHttpReq.Status <> 200 Then
        ErrorMessage = "Die Verbindung zum Server ist fehlgeschlagen! (Http Request POST " & xmlHttpReq.Status & ")"
        Set xmlHttpReq = Nothing
        Exit Function
    End If
    fi = FreeFile
    Open savepath & "" & FileName For Output As #fi
    Print #fi, xmlHttpReq.responseText
    Close #fi
    getFileFromServer = True
    Set xmlHttpReq = Nothing
    Exit Function
SendFileError:
    ErrorMessage = "Die Datei konnte nicht auf dem Server gefunden werden!"
    Set xmlHttpReq = Nothing
End Function

-->bzw. wenn er was an den Server senden soll:

Public Function sendXMLToServer(xmlDoc As DOMDocument30, DataxmlDoc As MSXML2.DOMDocument30) As Boolean
    Dim xmlHttpReq As MSXML2.XMLHTTP30
    sendXMLToServer = False
    On Error GoTo SendXMLError
    Set xmlHttpReq = New MSXML2.XMLHTTP30
    xmlHttpReq.open "post", serverpath & "/RecieveXML.aspx", False
    xmlHttpReq.setRequestHeader "Content-type", "text/xml"
    xmlHttpReq.send xmlDoc.xml 'string/array to send
    If xmlHttpReq.Status <> 200 Then
        ErrorMessage = "Die Verbindung zum Server ist fehlgeschlagen! (Http Request POST " & xmlHttpReq.Status & ")"
        Set xmlHttpReq = Nothing
        Exit Function
    End If
    Set DataxmlDoc = New MSXML2.DOMDocument30
    DataxmlDoc.async = False
    'MsgBox xmlHttpReq.responseText
    If DataxmlDoc.loadXML(xmlHttpReq.responseText) = False Then
        ErrorMessage = "Es ist ein Fehler beim Laden der Daten aufgetreten!"
        Set xmlHttpReq = Nothing
        Exit Function
    End If
    If DataxmlDoc.documentElement.baseName = "error" Then
        ErrorMessage = DataxmlDoc.documentElement.firstChild.Text
        Set xmlHttpReq = Nothing
        Exit Function
    End If
    sendXMLToServer = True
    Set xmlHttpReq = Nothing
    Exit Function
SendXMLError:
    ErrorMessage = "Die Datei konnte nan den Server gesendet werden!"
    Set xmlHttpReq = Nothing
End Function

-->Die Datei RecieveXML.aspx nimmt auf Serverseite wieder XML entgegen:

Dim commandXMLDoc As New Xml.XmlDocument

Private Sub writeError(ByVal txt As String)
        Response.Write("<error><!-- " & txt & " --></error>")
    End Sub
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Hier Benutzercode zur Seiteninitialisierung einfügen
        commandXMLDoc.LoadXml(httpInputToString(Request))
        Try
            getResponse()
        Catch ex As Exception
            writeError(ex.Message)
        End Try
    End Sub

Vielleicht nicht so ganz was Du machen willst, aber vielleciht hilfts ja weiter....
-LeKuchen