vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
Re: IPCam http POST 
Autor: ModeratorDaveS (Moderator)
Datum: 16.08.10 21:32

Hier ist ein ganz einfaches Beispiel, das die einkommende Url in eine Listbox schreibt
Imports System.Threading
Imports System.Net
 
Public Class MainForm
    Private listener As HttpListener
    Private mainThread As Thread
 
    Protected Overrides Sub OnFormClosing(ByVal e As _
      System.Windows.Forms.FormClosingEventArgs)
        ' ToDo: ensure all worker threads are ended
        listener.Abort()
        mainThread.Join()
    End Sub
 
    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        mainThread = New Thread(AddressOf mainRequestLoop)
        mainThread.Start()
    End Sub
 
    Private Sub StopButton_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles StopButton.Click
        Me.Close()
    End Sub
 
    Private Delegate Sub updateListBoxHandler(ByVal msg As String)
 
    Public Sub UpdateListBox(ByVal msg As String)
        If InvokeRequired Then
            Invoke(New updateListBoxHandler(AddressOf UpdateListBox), New _
              String() {msg})
        Else
            ListBox1.Items.Add(msg)
        End If
    End Sub
 
    Private Sub mainRequestLoop()
        listener = New HttpListener()
        listener.Prefixes.Add("Http://*:9090/HttpServerRequest/")
        listener.Start()
        Try
            Do
                Dim ctx As HttpListenerContext = listener.GetContext()
                Dim worker As New HttpRequestWorker(ctx, Me)
                ' ToDo: use threadpool threads probably better
                Dim t As New Thread(AddressOf worker.ProcessRequest)
                t.Start()
            Loop
        Catch ex As Exception
            'MsgBox(ex.ToString())
        End Try
    End Sub
 
    ' Http Request Handler
    Private Class HttpRequestWorker
 
        Private context As HttpListenerContext
        Private caller As MainForm
 
        Public Sub New(ByVal context As HttpListenerContext, ByVal f As _
          MainForm)
            Me.context = context
            caller = f
        End Sub
 
        ' Handle the request
        Public Sub ProcessRequest()
 
            Dim msg As String = context.Request.HttpMethod & " " & _
              context.Request.Url.ToString()
 
            caller.UpdateListBox(msg)
 
            Dim url As System.Uri = context.Request.Url
 
            Dim path As String = url.GetComponents(UriComponents.Path, _
              UriFormat.SafeUnescaped)
            Dim query As String = url.GetComponents(UriComponents.Query, _
            UriFormat.SafeUnescaped)
 
            Dim response As HttpListenerResponse = context.Response
 
            response.AddHeader("Cache-Control", "no-cache")
            response.AddHeader("Pragma", "no-cache")
            response.StatusCode = 200
            Dim encoding As System.Text.Encoding = System.Text.Encoding.Default
            response.ContentEncoding = encoding
            response.ContentType = "text/html"
 
            Dim responseHtml As String = "<html><body>Processed: " & path & " " _
              & query & "</body></html>"
            Dim responseHtmlBytes() As Byte = encoding.GetBytes(responseHtml)
            response.ContentLength64 = responseHtmlBytes.Length
            Dim stream As IO.Stream = response.OutputStream
            stream.Write(responseHtmlBytes, 0, responseHtmlBytes.Length)
            stream.Close()
 
            response.Close()
 
        End Sub
 
    End Class
 
End Class
Alle Http Requests an den Rechner mit Port 9090 mit dem Url /HttpServerRequest/... werden abgefangen und die Nachricht "Processed..." zurückgeschickt. Die Url wird in eine ListBox geschrieben. Ohne Adminrechte muss die Url (hier "Http://*:9090/HttpServerRequest/") für den ausführenden Benutzer berechtigt werden mit dem HttpCfg (XP) oder netsh Http (wesentlich einfacher) ab Vista. ZB

netsh http add urlacl url=http://*:9090/HttpServerRequest/ user=RECHNERODERDOMÄNE\USER

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
IPCam http POST39.946P-Velo15.08.10 13:43
Re: IPCam http POST30.752P-Velo15.08.10 21:03
Re: IPCam http POST11.936VB.NET200515.08.10 22:01
Re: IPCam http POST6.817P-Velo15.08.10 22:26
Re: IPCam http POST6.410ModeratorDaveS16.08.10 07:05
Re: IPCam http POST6.271P-Velo16.08.10 08:43
Re: IPCam http POST5.761VB.NET200516.08.10 10:00
Re: IPCam http POST6.489P-Velo16.08.10 11:02
Re: IPCam http POST6.324ModeratorDaveS16.08.10 16:16
Re: IPCam http POST6.469P-Velo16.08.10 20:04
Re: IPCam http POST6.584ModeratorDaveS16.08.10 21:32
Re: IPCam http POST6.212ModeratorDaveS18.08.10 08:10
Re: IPCam http POST6.264P-Velo18.08.10 09:29
Re: IPCam http POST6.288ModeratorDaveS18.08.10 10:15
Re: IPCam http POST6.309P-Velo18.08.10 10:37

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel